Java 使用带有FLAG_ACTIVITY_CLEAR_TOP的FLAG_ACTIVITY_NEW_任务
我有一个android应用程序,可以启动前台服务,如下所示:Java 使用带有FLAG_ACTIVITY_CLEAR_TOP的FLAG_ACTIVITY_NEW_任务,java,android,Java,Android,我有一个android应用程序,可以启动前台服务,如下所示: Intent i = new Intent(getApplicationContext(), ShowMessageActivity.class); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); i.putExtra("MESSAGE", "Show me to the user"); getApplicationContext().startActivity(i); 在呼叫活动中: serv
Intent i = new Intent(getApplicationContext(), ShowMessageActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.putExtra("MESSAGE", "Show me to the user");
getApplicationContext().startActivity(i);
在呼叫活动中:
serviceIntent = new Intent(this, MyService.class);
startService(serviceIntent);
在服务的onStart()中:
在某些情况下,服务需要向用户显示一条消息,然后转换回“主屏幕”,它被定义为带有LAUNCHER intent筛选器的活动(但在本例中,它可以是任何活动)。我通过在MyService内部创建一个意图来实现这一点,该意图指向一个带有标志_activity_NEW的活动,如下所示:
Intent i = new Intent(getApplicationContext(), ShowMessageActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.putExtra("MESSAGE", "Show me to the user");
getApplicationContext().startActivity(i);
从这个新活动中,我显示一条消息,然后尝试通过创建一个带有标志“活动”的新意图,将用户带回“主屏幕”:
finish();
Intent i = new Intent(this, MainActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
我似乎遇到的问题是,由于MessageActivity是使用FLAG_ACTIVITY_NEW_TASK创建的,它似乎位于它自己的活动堆栈上,因此当我返回“主屏幕”时,后退按钮会将我带到堆栈上的上一个活动,而不是退出应用程序(因为这应该是堆栈上的唯一活动)
以下是我所经历的更好的画面: