2013-07-24 57 views
-1

我想從我的廣播接收器開始多個活動。我有兩個類,即ReadContacts和CallDetails。我想一個接一個地開始。像第一個calldetails活動應該開始,然後下一個。我已經嘗試了下面的代碼,它工作正常。從broadcastReceiver開始multilple活動

Intent calldetails = new Intent(); 
calldetails.setClassName("com.simplereader", "com.simplereader.Calldetails"); 
calldetails.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
context.startActivity(calldetails); 

然後,我嘗試下面的代碼,開始其他活動

Intent readcontacts = new Intent(); 
readcontacts.setClassName("com.simplereader", "com.simplereader.ReadContacts"); 
calldetails.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK); 
context.startActivity(readcontacts); 

但其沒有工作和應用程序崩潰。

回答

0

我認爲你在這行犯錯誤

calldetails.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK) 

如果你想開始readcontacts活性,建議立即進行刪除是

readcontacts.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

,而不是

calldetails.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK); 

我認爲這是原因。

1

FLAG_ACTIVITY_MULTIPLE_TASK除非您正在實現自己的頂級應用程序啓動器,否則不要使用此標誌。

從Android開發者文檔intent

您可能可以使用新任務標誌啓動兩個活動。

2

您必須具有Intent FlagIntent.FLAG_ACTIVITY_NEW_TASK才能從活動上下文以外啓動Activity,因此您需要將該標誌添加到第二個Intent

我不知道這是否是你唯一的問題,但如果這不能解決它然後發佈你的logcat,所以我們可以看到錯誤。

Intent readcontacts = new Intent(); 
readcontacts.setClassName("com.simplereader", "com.simplereader.ReadContacts"); 
calldetails.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // you need this flag 
context.startActivity(readcontacts); 
+0

請詳細說明。 –

+0

或任何代碼片段 –

+0

我編輯了我的答案 – codeMagic