0

Any.Do スタイルの「リマインダー」ダイアログ... (はい、システム全体に表示されている白いもの); どうすればいいですか?

半透明のテーマでACTIVITY X を開始するので、前の ACTIVITY N をバックグラウンドに置かないように、フラグ「NEW_TASK」 と「singleTask」で開始する必要があります。

今、私は次のことをしたい:

このACTIVITY Xでホームボタンや戻るボタンを押すと、もう「バックスタック」に入れたくありません。なくなったように。そのため、ランチャー (またはタスク スイッチャー) からアプリを再度起動すると、別のアクティビティ (ACTIVITY N) に戻るはずです。

現在の動作: ランチャーからアプリを再度選択すると、この特定の ACTIVITY X が消えているはずです (はい、onPause() で finish() を呼び出しています) が生き返ります... 常に。

これをアーカイブするにはどうすればよいですか?

編集: いくつかのコード:

<activity 
               android:name=".ActivityX"
               android:theme="@android:style/Theme.Translucent.NoTitleBar"
               android:label="@string/app_name"
               android:launchMode="singleInstance"
               android:noHistory="true"
               ></activity>

そして、このアクティビティ x を呼び出すインテント:

Intent intent = new Intent(getApplicationContext(), ActivityX.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NO_HISTORY);

単なるアイデア: ダイアログをポップアップする代わりに、サービスを開始する方が良いでしょうか? これは実際には「シミュレート」したい動作ですが、システム全体であるため...

4

2 に答える 2

0

startactivity(intent) を実行しているとき。その直後に finish() を実行します...これにより、アクティビティが終了し、スタックに存在しなくなります。

于 2013-09-13T18:38:45.727 に答える
0

Activity に android:noHistory="true" を追加します。

于 2013-09-13T18:47:07.147 に答える