2009-06-10 10 views
3

私はあなたが特定のActivityにホーム "ショートカット"を作成できるようにするアプリを持っています。私のユーザーの何人かはアプリを使い、ホームキーを押して何か他のことをしてから、そのショートカットの1つを使ってそのアクティビティに戻ります。アプリはまだメモリに残っているので、他のアプリの上に新しいActivityを開き、「戻る」キーを押すと履歴全体に戻ります。私がしたいのは、ショートカットを使って履歴を効果的に消して、バックキーを使ってアプリを終了させることです。助言がありますか?どのようにAndroidの「ホーム」ショートカットを作成して、そのポイントの履歴にするのですか?

答えて

7

まず、:その後、

<activity 
     android:taskAffinity="" 
     android:name=".IncomingShortcutActivity"> 
     <intent-filter> 
      <action android:name="com.example.App.Shortcut"/> 
      <category android:name="android.intent.category.DEFAULT"/> 
     </intent-filter> 
</activity> 

は、ショートカットを作成する際に、FLAG_ACTIVITY_NEW_TASKFLAG_ACTIVITY_CLEAR_TOPフラグを設定します。何かのように:

// build the shortcut's intents 
final Intent shortcutIntent = new Intent(); 
shortcutIntent.setComponent(new ComponentName(this.getPackageName(), ".IncomingShortcutActivity")); 
shortcutIntent.putExtra(EXTRA_STOPID, Integer.toString(this.stop_id)); 
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
final Intent intent = new Intent(); 
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); 
// Sets the custom shortcut's title 
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, custom_title); 
// Set the custom shortcut icon 
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(this, R.drawable.bus_stop_icon)); 
// add the shortcut 
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); 
sendBroadcast(intent); 
+0

あなたはそれを少し明確にしてください。コードはどこに行くべきですか、IncomingShortcutActivity?誰が放送を処理するのですか? – Maxim

1

Intent.FLAG_NEW_TASKをインテントに追加してみてください。異なる「タスク」としてActivity実行をするためにマニフェストにtaskAffinityを設定

+0

まあ、それは少なくともそこに方法の一部を得た。おかげで –

関連する問題