AndroidManifest.xmlのandroid:launchModeについて
公開日:
:
最終更新日:2014/10/19
Android, Java, プログラム Activity, AndroidManifest.xml, launchMode, singleInstance, singleTask, singleTop, standard
今回は、AndroidManifest.xmlのandroid:launchModeについてなんだかなぁってお話。
まず、android:launchModeだけど、これは、アクティビティの起動方法の指示。
アプリの仕様上、ランチャーからの起動と暗黙的インテントでの起動があるんだけど、プログラム上で、これはランチャーからの起動、これは暗黙的インテントでの起動というのはあんまり好みでないので、AndroidManifest.xmlでそもそもの入り口であるアクティビティを指定しまおうと画策!
<activity
android:name=”com.sample.LauncherActivity”
android:label=”@string/app_name”
android:launchMode=”XXX”>
<intent-filter android:label=”@string/app_name”>
<action android:name=”android.intent.action.MAIN” />
<category android:name=”android.intent.category.LAUNCHER” />
</intent-filter>
</activity>
<activity
android:name=”com.sample.IntentActivity”
android:label=”@string/app_name”
android:launchMode=”XXX”>
<intent-filter android:label=”@string/app_name”>
<action android:name=”android.intent.action.VIEW” />
<category android:name=”android.intent.category.DEFAULT” />
<data android:mimeType=”text/*” />
</intent-filter>
</activity>
これでandroid:launchMode=”XXX”のXXXにsingleInstanceでどや!
ならばsingleTaskでどや!
見事失敗。
どうやらactivityタグを別々にすると、別々のアクティビティ・インスタンスと認識されてしまうらしい。
仕方がないので、プログラム上でどっちで起動されたか処理(涙)
ちなみに設定パラメータはこんな感じ
- standard・・・デフォルト。システムは常に対象とするタスクにアクティビティの新しいインスタンスを作成し、それにインテントを送ります。
- singleTop・・・アクティビティのインスタンスがすでに対象のタスクの先頭にある場合、システムはアクティビティのインスタンスを新たに作成するのではなく、
onNewIntent()
メソッドを用いてそのインスタンスにインテントを送ります。 - singleTask・・・システムは新しいタスクのルートにアクティビティを作成し、それにインテントを送信します。しかしながら、そのアクティビティのインスタンスがすでにある場合、システムはアクティビティのインスタンスを作成するのではなく、
onNewIntent()
mメソッドへの呼び出しを介して既存のアクティビティにインテントを送信します。 - singleInstance・・・”
singleTask"
と同じですが、システムがそのインスタンスを保持しているタスクに他のアクティビティをなにも起動させないという点は除きます。アクティビティは常にひとつでそのタスクの唯一のメンバーとなります。
詳しくは参考元のこちらに書かれています。
メイン広告
関連記事
-
端末の電池の残量をアクティビティに渡したい
アプリを作成している時に、端末の電池の残量を取得したい事があると思います。仕組みは電池の残量を管理す
-
Android & Bluetooth(その1)
さて、今回は自己満足の自作アプリをBluetoothで制御しようとしハマッたお話です。 大概記事書
-
Android開発環境の導入(その1)
自宅資料の中から使いそうなやつを抜粋。 何回かに分けて公開しよう。
-
Android & Bluetooth(その2)
前回は、AndroidアプリをBluetoothで制御するのにお手上げ状態でした。今回は、他のBlu
-
androidをスリープ状態にしたくない!
今回はandroid開発ネタで。動画や音楽再生には必須といえる「スリープ状態にしない」とい対応につい