2011-03-25 18 views
4

我想從AppA啓動AppB。在APPB的活動我發出:Android錯誤無法使用FLAG_RECEIVER_BOOT_UPGRADE這裏

Intent i = new Intent(); 
      i.setAction("START_APPB"); 
      i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
          context.sendBroadcast(i) 

裏面APPB我有一個是在START_APPB意圖過濾器收聽廣播接收機。

如下:在每種情況下上下文

Intent i = new Intent(); 
     i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     i.setAction("SHOW_APPBPAGE"); 
     context.startActivity(i); 

注是相應的應用程序的活動上下文。

這將導致從活動管理器崩潰錯誤:

IllegalArgumentException: Can't use FLAG_RECEIVER_BOOT_UPGRADE here 

我從來沒有見過這個錯誤。當我從App的第一個活動發送相同的消息時,它運行時沒有錯誤,但不知何故不在第三頁上,使用第三頁的上下文。

+0

請注意我沒有在任何地方直接使用FLAG_RECEIVER_BOOT_UPGRADE。 – Androider 2011-03-25 22:15:02

+0

我有另一種方式來啓動第二個應用程序,即只是盯着應用程序的活動,而不是發送廣播,這工作沒有錯誤,但由於某種原因,廣播接收器在另一個應用程序中廣播接收器不起作用,它會很高興知道這個錯誤的來源及其來源。 – Androider 2011-03-26 00:10:09

+1

爲什麼要標記一個有一個罕見錯誤的問題。這是沒有意義的。只是很高興我發佈它,以便有人可以重現,也許可以得到答案。我有另一種方法來解決同樣的問題,所以我沒有發佈這只是爲了解決我的問題。 – Androider 2011-03-29 20:06:17

回答

9

請勿在sendBroadcast()處使用任何FLAG_ACTIVITY_常數。

+0

我想我得到了一個沒有FLAG_ACTIVITY_NEW_TASK的錯誤,但是當我在兩邊添加NEWTASK時,我得到了上面的錯誤。 – Androider 2011-03-26 20:19:41

+0

Android錯誤提示我需要FLAG_ACTIVITY_NEW_TASK,然後出現錯誤。我以前沒見過這個。它似乎與從棧中的活動發佈廣播有關。當我使用主要活動時,我沒有看到這個錯誤。 – Androider 2011-03-26 20:21:35

+0

而它的ActivityManager由於某種原因不喜歡這個。 – Androider 2011-03-26 20:27:35

4

當填充你的意圖,這樣做:

intent.setFlags(0); 
+0

如果你像從前那樣從apps-for-android的AnyCut應用程序中獲得此應用程序。這是正確的答案,只需在'FrontDoorActivity.java:onActivityResult()'中的'sendBroadcast(result)'之前添加'result.setFlags(0)'即可。 – JohnnyLambada 2013-01-22 00:25:27

1

我遇到了這一點,並發現這是Android的一個bug。在歷史上的某個時刻,這兩個標記 - FLAG_ACTIVITY_NEW_TASKFLAG_RECEIVER_BOOT_UPGRADE - 得到相同的數字值,因爲某些android開發人員更改了其中的一個值,但未檢查其是否已被另一個標記佔用。最新版本(4.4)似乎已經修復。

相關問題