AndroidManifest.xmlのandroid:launchModeについて

公開日: : 最終更新日:2014/10/19 Android, Java, プログラム , , , , , ,

今回は、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" と同じですが、システムがそのインスタンスを保持しているタスクに他のアクティビティをなにも起動させないという点は除きます。アクティビティは常にひとつでそのタスクの唯一のメンバーとなります。

詳しくは参考元のこちらに書かれています。

 

メイン広告

関連記事

no image

Android開発環境の導入(その2) – JDKのインストール

前回は全体の流れを書いたけど、今回からは具体的な内容へ!   まずは「JDKの

記事を読む

no image

Android開発環境の導入(その7) – Android端末をPCに認識させる

前回は「

記事を読む

no image

androidをスリープ状態にしたくない!

今回はandroid開発ネタで。動画や音楽再生には必須といえる「スリープ状態にしない」とい対応につい

記事を読む

no image

Android開発環境の導入(その6) – EclipseのAndroid Plug-inとSDKを連携させる

前回は「

記事を読む

no image

Android開発環境の導入(その1)

自宅資料の中から使いそうなやつを抜粋。   何回かに分けて公開しよう。

記事を読む

no image

Android & Bluetooth(その2)

前回は、AndroidアプリをBluetoothで制御するのにお手上げ状態でした。今回は、他のBlu

記事を読む

no image

Android開発環境の導入(その5) – Android Plug-inのインストール

前回は「

記事を読む

no image

Android開発環境の導入(その3) – Android SDKのインストール

前回は「

記事を読む

no image

Android開発環境の導入(その4) – Eclipseのインストール

前回は「

記事を読む

no image

端末の電池の残量をアクティビティに渡したい

アプリを作成している時に、端末の電池の残量を取得したい事があると思います。仕組みは電池の残量を管理す

記事を読む

横長広告

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


メイン広告

no image
SSDの換装

久しぶりです。新しくブログが更新されたと言うことは・・・。 そうです

centos_logo_small
CentOS7.2で最小限のインストール

今回は、最新のCentOS 7.2をインストールしてみよう。GUIベー

pma
phpMyAdminの拡張機能を設定しよう

いまさらだけどちょうどサーバ環境を作る機会があったので phpMyA

php
PHP7とPHP5を比較してみよう(3)

前回は配列について比較したけど今回はZendFramework、lar

php
PHP7とPHP5を比較してみよう(2)

前回予告したとおり、今回はPHP5の配列とPHP7の配列・配列に連想配

→もっと見る

PAGE TOP ↑