2

インテント フラグに慣れようとしていて、FLAG_ACTIVITY_RETAIN_IN_RECENTS を理解したいと思っています。ドキュメントを読みましたが、アクティビティを呼び出すときにこのフラグが設定されている場合、ユーザーが戻るボタンを押すか、アクティビティが終了()した場合、スタックに残っているようです。この解釈は正しいですか?そうでない場合、このフラグは何に使用されますか?

参考:http ://developer.android.com/reference/android/content/Intent.html よろしくお願いします!

4

2 に答える 2

4

ドキュメントを読みましたが、アクティビティを呼び出すときにこのフラグが設定されている場合、ユーザーが戻るボタンを押すか、アクティビティが終了()した場合、スタックに残っているようです。

いいえ、アクティビティはスタックに残りませんが、そのエントリは最近のタスク リストに表示されます。アプリケーションを再起動するのと同じように、そのエントリをクリックしてこのアクティビティを再起動できます。

于 2015-02-13T02:55:18.107 に答える
2

OverviewScreen での別の使用法: 概要画面でタスクを保持したい場合は、そのアクティビティが終了しても、アクティビティを起動する Intent の addFlags() メソッドで FLAG_ACTIVITY_RETAIN_IN_RECENTS フラグを渡します。

private Intent newDocumentIntent() {
final Intent newDocumentIntent = new Intent(this, NewDocumentActivity.class);
newDocumentIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT |
  android.content.Intent.FLAG_ACTIVITY_RETAIN_IN_RECENTS);
newDocumentIntent.putExtra(KEY_EXTRA_NEW_DOCUMENT_COUNTER, incrementAndGet());
return newDocumentIntent;

}

同じ効果を得るには、属性 android:autoRemoveFromRecents を false に設定します。デフォルト値は、ドキュメント アクティビティの場合は true、通常のアクティビティの場合は false です。この属性を使用すると、FLAG_ACTIVITY_RETAIN_IN_RECENTS フラグがオーバーライドされます

于 2015-02-13T03:38:59.963 に答える