2016-11-17 2 views
0

がある -つのアクティビティがフォアグラウンドで背景や他のであり、私が何をしたいのか

私のアプリケーションが実行状態にあると私はアプリすなわちを一時停止します。それをバックグラウンドに移動します。ユーザーは画面をロックしてからロックを解除するので、ACTION_USER_PRESENTのために私のアプリから広告活動を開始します。しかし、バックグラウンドでの活動はバックグラウンドで行われ、フォアグラウンドで示された活動は別々に処理されます。しかし、フォアグラウンド・アクティビティからのクリック・オプションが実行された場合は、フォアグラウンド・アクティビティをクローズし、バックグラウンド・アクティビティを起動する必要があります。

問題点 - ユーザーの現在のインテントが発生すると、新しいアクティビティiが起動し、一時停止されたアクティビティが再開されます。しかし、私はこれを望んでいない、アプリはバックグラウンドであった。新たに開始されたアクティビティのみが前面に表示されます。 FLAG_ACTIVITY_NEW_TASKがスタックから古い開かれた活動を再開しますので、非常に新しい活動

Intent i = new Intent(context, MyAd.class); 
context.startActivity(i); 

を開始するには

Intent i = new Intent(context, MyAd.class); 
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
context.startActivity(i); 

答えて

1

:私は新しい活動を開始するためにこれをやっている受信機から

FLAG_ACTIVITY_NEW_TASK設定した場合は、この活動は この履歴スタック上に新しいタスクの開始となります。

https://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_NEW_TASK

そして、あなたは唯一のアクティビティスタック内のアクティビティの瞬間を維持したい場合。 Use

i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

+0

この新しいタスクは、action_user_presentのブロードキャスト受信者からFLAG_ACTIVITY_NEW_TASKを使用せずに開始しています。この例外が発生しました。android.util.AndroidRuntimeException:アクティビティコンテキストの外部からstartActivity()を呼び出すにはFLAG_ACTIVITY_NEW_TASKフラグが必要です。これは本当にあなたが望むものですか? – beginner

+0

これを試してください 'i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);' – Bills

関連する問題