-1

我想从我的广播接收器开始多项活动。我有两个类,即 ReadContacts 和 CallDetails。我想一一开始。像第一个 calldetails 活动应该开始然后下一步。我试过下面的代码,它工作正常。

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);

但它不起作用,应用程序崩溃。

4

3 回答 3

2

您必须具有从 Activity 上下文外部Intent Flag Intent.FLAG_ACTIVITY_NEW_TASK启动的权限,因此您需要将该标志添加到您的第二个.ActivityIntent

我不知道这是否是您唯一的问题,但如果这不能解决问题,请发布您的 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);
于 2013-07-24T16:55:42.643 回答
1

FLAG_ACTIVITY_MULTIPLE_TASK 除非您正在实现自己的顶级应用程序启动器,否则不要使用此标志。

来自intent的android 开发者文档。

您可能只需使用新任务标志启动这两个活动。

于 2013-07-24T16:43:35.000 回答
0

我认为你在这行犯了错误

calldetails.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK)

如果你想开始 readcontacts 活动,它应该是

readcontacts.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

代替

calldetails.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);

我想这就是原因。

于 2013-07-24T17:04:35.397 回答