5
我一直在努力解決這個問題一段時間了。我有一個顯示烹飪食譜摘要的小部件。這個小部件是可點擊的,所以無論何時用戶點擊它,新的活動都會以該配方的完整描述打開。問題在於,有時點擊小部件時會打開錯誤的活動。我給大家舉一個例子:Android:打開錯誤小部件的活動
- 小部件和活動的用戶點擊打開
- 用戶從活動開始A.活動B(例如配方指數)
- 用戶從活動開始B.活動Ç
- 用戶按下主頁按鈕。
- 用戶點擊該小部件再次顯示,而不是一個
我嘗試設置這三個標誌,這有助於解決僅僅是問題的一半的compibation活性C:
openIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
通過使用上述標誌我設法顯示正確的活動(A),直到我執行以下操作:
- 用戶從微件打開活性的
- 用戶移動到活動B和點擊新配方
- 新配方被顯示給用戶
- 用戶打開活動A點擊小部件Home鍵和點擊。
- 顯示活動A(正確的),但是具有不同的配方。
- 從現在開始,如果我移動到不同的活動B或C,然後單擊主頁,然後再次點擊小部件,則不會顯示活動A,而會顯示在按下主頁按鈕之前可見的活動。
我希望我解釋得足夠詳細。我會很感激你的幫助,因爲這件事讓我發瘋了!
更新時間:
這是我的PendingIntent:
Intent openIntent = new Intent(context, ProfanityDefinition.class);
openIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
openIntent.setData(Uri.parse(openIntent.toUri(Intent.URI_INTENT_SCHEME)));
Bundle bundle = new Bundle();
bundle.putBoolean("widgetRequest", true);
openIntent.putExtras(bundle);
PendingIntent openPendingIntent = PendingIntent.getActivity(context, 0, openIntent, PendingIntent.FLAG_UPDATE_CURRENT);
views.setOnClickPendingIntent(R.id.widget_content, openPendingIntent);
感謝
由於您的任務活動已在運行,因此「FLAG_ACTIVITY_NEW_TASK」只會將運行活動置於前臺。在AndroidManifest.xml中爲'ProfanityDefinition'活動設置android:taskAffinity =「」',使其在單獨的任務中運行。然後,您將獲得一個新實例來點擊小部件。 –
這沒有幫助...我仍然得到活動B,而不是A或A與不同的內容...這很奇怪 – Marqs
它的工作原理,檢查你的代碼。您是否使用Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP'作爲標誌? '活動A'的類名是什麼? –