簡體   English   中英

返回啟動器應用程序:: Android上的應用程序時保持狀態?

[英]Maintain state upon return to app on launcher apps :: Android?

我創建了一個具有主屏幕按鈕功能的Android啟動器應用程序,它將帶您離開啟動器並進入標准的Android主屏幕。 我使用以下代碼片段進行此操作:

Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);

我遇到的問題是,當用戶重新啟動啟動器應用程序時,它從頭開始。 我沒有回到發起的同一活動。 我懷疑這是因為該應用程序是啟動器,所以它的行為與“活動”進入后台並可以返回的普通應用程序不同。 相反,其行為是它完成了堆棧任務中的所有活動。

對預防或解決此問題有什么建議嗎?

對於那些詢問清單的人,這些是創建啟動器的步驟

1)我在活動中添加了以下屬性

android:launchMode="singleTask"

2)我在意圖過濾器中添加了以下類別

<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.HOME" />

最后,我創建了一個演示來演示我正在描述的問題。 此處: www.mediafire.com/download/qu5nfzoaj8cqjtu/LauncherDemo.zip

我看了你的演示。 不幸的是,這行不通。

當Android啟動LAUNCHER時,它將設置以下Intent標志:

FLAG_ACTIVITY_RESET_TASK_IF_NEEDED

這導致任務被簡化為根活動。 您對啟動LAUNCHER活動時設置的Intent標志沒有任何控制權,因此您無法阻止這種情況的發生。

通常,LAUNCHER活動具有launchMode="singleInstance" 這意味着,當啟動器啟動活動時,該活動將終止於另一個任務。 LAUNCHER活動始終獨自完成一項任務。 這樣一來,您就可以始終將LAUNCHER活動置於前台(因為它的任務中沒有其他活動)。

您可能需要重新考慮您的體系結構。 抱歉。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM