2015-01-31 39 views
1
Intent goMain = new Intent(getBaseContext(),MainActivity.class); 

goMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); 
goMain.putExtras(extras); 
getApplicationContext().startActivity(goMain); 

将数据发送至mainactivity我想要做的是,从单独的IntentService发送数据O唯一MainActivity。发生了什么,我不希望它发生的是带来一个新的活动,而不是当前运行的活动。另外,当前正在运行的活动不显示从intentservice发送的数据。当我尝试删除FLAG_ACTIVITY_NEW_TASK时,“从Activity上下文外调用startActivity()需要FLAG_ACTIVITY_NEW_TASK标志”错误。谁能帮我这个? 在此先感谢。从单独的意图

回答

2

使用Intent.FLAG_ACTIVITY_CLEAR_TASK正在导致您的问题。如果你想使用Activity的现有实例,使用此标志集:

goMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | 
      Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP); 

设置Intent.FLAG_ACTIVITY_CLEAR_TOP将是对MainActivity顶部的任务堆栈中删除的任何其他活动。

设置Intent.FLAG_ACTIVITY_SINGLE_TOP将确保将使用MainActivity的现有实例,并且不会创建新的实例。

MainActivity.onNewIntent()将与您使用的Intent一起调用。