日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

概览屏幕(最新动态屏幕、最近任务列表)

發布時間:2025/4/16 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 概览屏幕(最新动态屏幕、最近任务列表) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

好吧,這一篇基本上就是Android官方文檔抄過來了……文檔寫的很清楚簡潔,似乎不會精簡什么了………

概覽屏幕是一個系統級別的UI,其中列出了最近訪問過的Activity和任務,用戶可以瀏覽該列表并選擇要恢復的任務,也可以通過滑動清除任務將其從列表中移除。通常應該允許系統定義任務和Activity在概覽屏幕中顯示方法,且無需修改,應用可以確定Activity在概覽屏幕中顯示方式和時間,可以使用ActivityManager.AppTask類來管理任務,使用Intent類的Activity標志來指定某Activity添加到概覽屏幕或從中移除的時間,此外,可以使用<activity>屬性在清單文件中設置該行為。

將任務添加到概覽屏幕:

?使用Intent標志添加任務:

為 Activity 創建新文檔時,可調用?ActivityManager.AppTask?類的?startActivity()?方法,以向其傳遞啟動 Activity 的 Intent。 要插入邏輯換行符以便系統將 Activity 視為新任務顯示在概覽屏幕中,可在啟動 Activity 的?Intent的?addFlags()?方法中傳遞?FLAG_ACTIVITY_NEW_DOCUMENT?標志。

如果在創建新文檔時設置?FLAG_ACTIVITY_MULTIPLE_TASK?標志,則系統始終會以目標 Activity 作為根創建新任務。此設置允許同一文檔在多個任務中打開。以下代碼演示了主 Activity 如何執行此操作:

public void createNewDocument(View view) {final Intent newDocumentIntent = newDocumentIntent();if (useMultipleTasks) {newDocumentIntent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);}startActivity(newDocumentIntent);}private Intent newDocumentIntent() {boolean useMultipleTasks = mCheckbox.isChecked();final Intent newDocumentIntent = new Intent(this, NewDocumentActivity.class);newDocumentIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT);newDocumentIntent.putExtra(KEY_EXTRA_NEW_DOCUMENT_COUNTER, incrementAndGet());return newDocumentIntent;}private static int incrementAndGet() {Log.d(TAG, "incrementAndGet(): " + mDocumentCounter);return mDocumentCounter++;} }注:使用?FLAG_ACTIVITY_NEW_DOCUMENT?標志啟動的 Activity 必須具有在清單文件中設置的?android:launchMode="standard"?屬性值(默認)。

當主 Activity 啟動新 Activity 時,系統會搜遍現有任務,看看是否有任務的 Intent 與 Activity 的 Intent 組件名稱和 Intent 數據相匹配。 如果未找到任務或者 Intent 包含?FLAG_ACTIVITY_MULTIPLE_TASK?標志,則會以該 Activity 作為其根創建新任務。如果找到的話,則會將該任務轉到前臺并將新 Intent 傳遞給?onNewIntent()。新 Activity 將獲得 Intent 并在概覽屏幕中創建新文檔,如下例所示:


@Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_new_document);mDocumentCount = getIntent().getIntExtra(DocumentCentricActivity.KEY_EXTRA_NEW_DOCUMENT_COUNTER, 0);mDocumentCounterTextView = (TextView) findViewById(R.id.hello_new_document_text_view);setDocumentCounterText(R.string.hello_new_document_counter); }@Override protected void onNewIntent(Intent intent) {super.onNewIntent(intent);/* If FLAG_ACTIVITY_MULTIPLE_TASK has not been used, this activityis reused to create a new document.*/setDocumentCounterText(R.string.reusing_document_counter); } 使 使用Activity屬性添加任務:

此外,Activity 還可以在其清單文件中指定始終通過使用?<activity>?屬性?android:documentLaunchMode?進入新任務。 此屬性有四個值,會在用戶使用該應用打開文檔時產生以下效果:

"intoExisting"
該 Activity 會對文檔重復使用現有任務。這與不設置FLAG_ACTIVITY_MULTIPLE_TASK?標志、但設置FLAG_ACTIVITY_NEW_DOCUMENT?標志所產生的效果相同,如上文的使用 Intent 標志添加任務中所述。
"always"
該 Activity 為文檔創建新任務,即便文檔已打開也是如此。使用此值與同時設置?FLAG_ACTIVITY_NEW_DOCUMENT?和?FLAG_ACTIVITY_MULTIPLE_TASK標志所產生的效果相同。
"none”"
該 Activity 不會為文檔創建新任務。概覽屏幕將按其默認方式對待此 Activity:為應用顯示單個任務,該任務將從用戶上次調用的任意 Activity 開始繼續執行。
"never"
該 Activity 不會為文檔創建新任務。設置此值會替代FLAG_ACTIVITY_NEW_DOCUMENT?和?FLAG_ACTIVITY_MULTIPLE_TASK?標志的行為(如果在 Intent 中設置了其中一個標志),并且概覽屏幕將為應用顯示單個任務,該任務將從用戶上次調用的任意 Activity 開始繼續執行。

注:對于除?none?和?never?以外的值,必須使用?launchMode="standard"?定義 Activity。如果未指定此屬性,則使用?documentLaunchMode="none"

移除任務:

在于概覽屏幕創建新任務的 Activity 中,您可以通過調用 finishAndRemoveTask()?方法指定何時移除該任務以及結束所有與之相關的 Activity。

public void onRemoveFromRecents(View view) {// The document is no longer needed; remove its task.finishAndRemoveTask(); } 保留已完成的任務:

若要將任務保留在概覽屏幕中(即使其 Activity 已完成),可在啟動 Activity 的 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; }要達到同樣的效果,請將? <activity> ?屬性android:autoRemoveFromRecents ?設置為? false 。文檔 Activity 的默認值為? true ,常規 Activity 的默認值為? false 。如前所述,使用此屬性替代? FLAG_ACTIVITY_RETAIN_IN_RECENTS ?標志。


總結

以上是生活随笔為你收集整理的概览屏幕(最新动态屏幕、最近任务列表)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。