从单独的意图发送数据到mainactivity

时间:2015-01-31 22:48:11

标签: android android-activity android-intentservice

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

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

1 个答案:

答案 0 :(得分: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