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
标志”错误。谁能帮我这个?
提前谢谢。
答案 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
。