从单独的意图向主活动发送数据
Send data to mainactivity from separate intent
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
或一个 MainActivity
发送数据。发生的事情是带来一个新的 activity 而不是当前的 运行,我不希望它发生。另外,当前运行 activity 不显示从intentservice 发送的数据。当我尝试删除 FLAG_ACTIVITY_NEW_TASK
时,出现 "Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK
flag" 错误。谁能帮我这个?
提前致谢。
使用 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
一起调用。
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
或一个 MainActivity
发送数据。发生的事情是带来一个新的 activity 而不是当前的 运行,我不希望它发生。另外,当前运行 activity 不显示从intentservice 发送的数据。当我尝试删除 FLAG_ACTIVITY_NEW_TASK
时,出现 "Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK
flag" 错误。谁能帮我这个?
提前致谢。
使用 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
一起调用。