2011-07-11 16 views
10

私たちは、JavaコードでaddFlags()メソッドを使用してインテントに追加できるフラグがあることを知っています。これをjavaコードで記述するのではなく、マニフェストファイル自体に追加する方法はありますか? マニフェストで自分の活動の1つにREORDER_TO_FRONTフラグを追加する必要があります。マニフェストファイルに自分の意図を示すフラグを追加する方法

これを行うには?

答えて

6

マニフェストファイルでは、インテントフラグを追加できません.intActivityに渡すインテントにフラグを設定する必要があります。ここではサンプルです:

Intent intent = new Intent(this, ActivityNameToLaunch.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
startActivity(intent); 
+7

こんにちはリッチーが、問題は、私は明示的に別のアクティビティからこの活動を開始するわけではないです:https://developer.android.com/guide/topics/manifest/activity-element.html(launchModeセクションアンドロイドを参照してください)。私の場合、起動されるアクティビティはメイン/ランチャーであり、バックボタンを押して他のアクティビティを閉じ、最後にこの画面に来るときに開始することを意図しています(開始画面でもあります) – Ankit

3

これはGoogle検索で最初の答えとして表示され、それが活動にandroid:noHistory="true"を追加すると(2009年に導入された)APIレベル3以降、行うことができるので、元の質問に答えるためにここに記載されているマニフェストファイルの定義:http://developer.android.com/guide/topics/manifest/activity-element.html#nohist

例:

<activity 
    android:name=".MainActivity" 
    android:label="@string/app_name" 
    android:noHistory="true"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN"/> 
     <category android:name="android.intent.cataegory.LAUNCHER"/> 
    </intent-filter> 
</activity> 
2

私は同様の問題を抱えていたし、トップに常に活動をもたらすためにフラグ

Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK 

を設定したかったです。このシナリオでは

、溶液がマニフェストに

android:launchMode="singleInstance" 

属性を設定することです。

一般に、Androidマニフェストにはアクティビティの属性が多数あります。これらを使用して、フラグと同様の効果を得ることができます。

+0

優秀なヒント、ありがとうございます!単に「遊ぶ」のではなく、要素のドキュメントをチェックしたいと思うかもしれません:https://developer.android.com/guide/topics/manifest/activity-element.html – Robin

0

あなたは簡単にこのように、マニフェストの<activity>ノードでandroid:launchMode="singleTop"を使用してこれを実現することができます

<activity 
    android:name=".ui.activities.MainActivity" 
    android:launchMode="singleTop"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
</activity> 

注意、android:launchMode="singleInstance"ことそれは@のイェルク・eisfeldで与えられるように推奨されていないオプションを一般的な使用のため、それは公式ドキュメントに記載されているよう:ええ、私はこの事を知って、

関連する問題