3

アクティビティを開始するバックグラウンドサービスがあります。

Intent i = new Intent(this, MyActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);

このアクティビティを破棄し、「ホームキーの長押しメニュー」から再開すると、このアクティビティが再開されます。しかし、代わりにメインアクティビティを開始したいと思います。どうすればこれを実現できますか?

4

2 に答える 2

4

もっと詳しく説明してもらえますか?問題がわかったら、FLAG_ACTIVITY_NO_HISTORYを設定してみてください。

または、手動による解決策は、MyActivityのインテントでFLAG_ACTIVITY_LAUNCHED_FROM_HISTORYを確認し、このフラグが設定されている場合はメインアクティビティを起動することです。次のコードはそれを行う必要があります:

if ((getIntent().getFlags() & FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) > 0) {
   activity.startActivity(new Intent(context , MainActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));    
}
于 2011-02-24T08:35:12.273 に答える
0

問題は、サービスからアクティビティを開始したようなものです->通知が来ました->ユーザーがアプリを起動しますagian->通知がありません->メインアクティビティがフォアグラウンドで発生しましたアプリケーションが「長押しホームキーメニュー」から開始された場合「主なアクティビティは、通知の開始と表示です。

したがって、明確な解決策の1つは、メインアクティビティを「最近から除外=true」および「履歴なし=true;」にすることです。ユーザーは「長押しホームキーメニュー」であなたのアクティビティを見ることができなくなります

于 2011-02-24T09:00:52.560 に答える