从单独的意图向主活动发送数据

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 一起调用。