2011-07-13 37 views
1

我的Android應用程序中有一個非常奇怪的行爲。這裏是發生了什麼:從Widget啓動活動首先停止應用程序啓動相同的活動

如果我「推出」應用程序(單擊其圖標),並開始通過startActivity(意向)的活動,它工作正常。如果我然後添加一個小部件並點擊它來通過setOnClickPendingIntent()啓動相同的意圖,它也可以很好地工作。

現在,如果我打後退按鈕,直到應用程序「關閉」(即我回到主屏幕),然後點擊窗口小部件,該活動顯示正常。但是,當我嘗試從應用內啓動相同的活動/意圖時,它不再起作用。該活動未開始,我仍保持在同一屏幕上。我調試了代碼,startActivity(Intent)方法和以前完全一樣(正在執行完全相同的一段代碼)。

如果我回到主屏幕和「啓動」應用程序再次(點擊圖標)一切變得恢復正常。

上這可能是導致該問題的任何想法。

電話的是Android 2.3.3。並且該應用程序是針對Android 2.1-update1(API Level 7)構建的。

+0

P.S.日誌中沒有錯誤。它實際上輸出 「07-13 17:19:44.371:INFO/ActivityManager(108):開始:從意圖PID 5840 {ACT = xyNEWS_DETAIL FLG = 0x10000000的CMP = XY/.activity.NewsDetail(具有額外)}」,但那麼沒有任何反應 – AngraX

回答

1

我發現問題所在。

Widget通過設置標誌intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

在我的列表視圖中的活動,我用的是相同的標誌,推出的意圖

Intent intent = new Intent("x.y.NEWS_DETAIL"); 
intent.putExtra(NewsConstants.ISSUE_ID, newsId); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
getApplicationContext().startActivity(intent); 

出於某種原因,請求與FLAG_ACTIVITY_NEW_TASK的活動時,該活動已經在歷史上防止其顯示。我從當前的情況下刪除該標誌並啓動意圖固定而不是應用程序上下文有關的代碼,:

Intent intent = new Intent("x.y.NEWS_DETAIL"); 
intent.putExtra(NewsConstants.ISSUE_ID, newsId); 
startActivity(intent); 

我必須找出什麼現在是一個的PendingIntent該標誌的效果,如果它應該是用於Widgets或沒有。

相關問題