Androidアプリを作ろう!3

前回の課題
とりあえずSMARTalkを起動するアプリはできましたが、
何も画面を表示せずに(バックグラウンドで)SMARTalkを起動&終了させることが課題でした。

対策
① ウィジェットからSMARTalkを起動させる
② アクティビティ(画面)のないアプリを作る

対策として上の2つを考えました。
①は、できるのでしょうが、よくわからなかったのでパスしました。
②は、アクティビティがないとjavaのコードが書けなかったので、これもできませんでした。
(Androidのjavaコードは、アクティビティ上に書くようです。)

苦肉の策で考えてのが
③ onCreate()メソッド直後にSMARTalkを起動&終了させる
です。
コードを下に示します。

package winspire.kentaro.gmail.com.refreshsmartalk;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.content.Intent;
import android.content.pm.PackageManager;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //onCreateでSMARTalkを起動する
        PackageManager pm = getPackageManager();
        Intent newIntent = pm.getLaunchIntentForPackage("jp.co.fusioncom.smartalk.android");
        startActivity(newIntent);

        //スリープさせる
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        //ホーム画面に移動する
        Intent homeIntent = new Intent(Intent.ACTION_MAIN);
        homeIntent.addCategory(Intent.CATEGORY_HOME);
        this.startActivity(homeIntent);
    }
    
}

onCreate()メソッドの直後にSMARTalkを起動して、ホーム画面に戻るだけなので、単純明快なコードです。
ただ、このコードだとMainActivityは必ず表示されちゃうんですよね。
(↓この画面)

すぐに閉じちゃうので、あまり気にはなりませんが完全に表示させないようにしたいです。

いかがでしたでしょうか。
本当に少しずつですが、ゴールに向かっているような気がします。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!

コメント

コメントする

ジャンプできる目次
閉じる