我想从我的广播接收器开始多项活动。我有两个类,即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);
但它没有工作和应用程序崩溃。
答案 0 :(得分:2)
您必须让Intent Flag
Intent.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);
答案 1 :(得分:1)
FLAG_ACTIVITY_MULTIPLE_TASK除非您要实现自己的顶级应用程序启动器,否则不要使用此标志。
来自intent的android开发者文档。
您可能只需使用新任务标志启动这两个活动。
答案 2 :(得分:0)
我认为你在这一行中犯了错误
calldetails.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK)
如果你想开始readcontacts活动,那就是
readcontacts.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
而不是
calldetails.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
我认为这就是原因。