2013-12-11 14 views
6

バックグラウンドで実行されているMy Appは、ある時点で意図的にユーザーのフローを中断するアクティビティを表示します。私のアクティビティは新しいタスクを開始します。は、フォアグラウンドにある間に、 "Recent Tasks"リストに表示されます。それが予防できる方法はありますか?設定android:excludeFromRecentsは機能しません - 「最近のタスク」でアクティビティがもう表示されません。最近のタスクから現在のアクティビティを除外します

マニフェストは、次のようになります。

<activity 
    android:name="com.example.recenttasks.MainActivity" 
    android:excludeFromRecents="true"> 
</activity> 

と活動は、このように開始されます。

@Override 
public void onReceive(Context context, Intent intent) { 
    Intent i = new Intent(context, MainActivity.class); 
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    context.startActivity(i); 
} 

答えて

2

あなたは十分にあるマニフェストの中に定義されていますが、それは来ていません。.. OK

をこのフラグをIntnetに追加し、アクティビティを開始してください。

intnet.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); 
+0

申し訳ありませんでした。 – lstipakov

2

フォアグラウンド

でありながら、あなたが言及した重要なのは、「最近のタスク」リストで

表示されている私は、あなたがその動作を変更することはできませんと思います。私はちょうど私のアプリでテストし、同じことが起こります。フォアグラウンドで自分の活動をしているときに「最近の仕事」ボタンを押すと、そこに表示されます。私が別のアクティビティまたは自分の携帯電話のメイン画面に移動した瞬間、そのアクティビティはもうリストされません。

最近のAndroidバージョンに付属している内蔵のDeskClockアプリでもこれをテストしました。新しいアラームが発生したときも同じ動作が行われます。そのアプリのAlarmAlertFullscreenアクティビティには、あなたの質問で述べたのと同じパラメータがあります。

私はあなたがこれを回避することができないか、最初にフォーカスが失われてもアクティビティがリストされていないため、最初にする必要があるとは確信していません。

+0

UsbDebuggingActivityの動作をエミュレートしようとしていますが、これはadb経由で初めて接続するときに4.xデバイスでポップアップします。 「最近のアプリ」がポップアップされたときにアクティビティが破壊されているようです(これまでのコードからはわかりませんが)http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android /android/4.2_r1/com/android/systemui/usb/UsbDebuggingActivity.java/#UsbDebuggingActivity) – lstipakov

+1

OK、それはマニフェストで 'finishOnCloseSystemDialogs = true'を使用します。私はおそらく同じことを行う必要があります。 – lstipakov

+0

@Stipa私たちに更新してください。 :) –

0

次のコードを使用すると、MainActivityは[最近のタスク]に表示されません。

Intent i = new Intent(context, MainActivity.class); 
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
i.setFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); 
i.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK); 
context.startActivity(i); 
関連する問題