当前位置 : 主页 > 手机开发 > android >

Android:如何通过startActivity()将Intent传递给正在运行的Activity?

来源:互联网 收集:自由互联 发布时间:2021-06-11
虽然MyClient目前处于后台,但MyService和MyClient都在运行.如果MyService通过以下方式向MyClient发送Intent: Intent i = new Intent(MYService.this, MyClient.class);i.setAction("com.test.MyService.ACTION_SERVICE");i.setFla
虽然MyClient目前处于后台,但MyService和MyClient都在运行.如果MyService通过以下方式向MyClient发送Intent:

Intent i = new Intent(MYService.this, MyClient.class);
i.setAction("com.test.MyService.ACTION_SERVICE");
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);

如何在MyClient中获取此Intent?运行此代码会触发MyClient中的onResume(),但由于它已经在运行,因此调用getIntent()会返回最初创建MyClient的Intent,它始终是android.intent.action.MAIN

覆盖onNewIntent()并确保标记intent,以便它不会启动活动的新实例
网友评论