Started activity from home key screen

2020-07-22 19:18发布

I have a background Service which starts an activity,

Intent i = new Intent(this, MyActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);

After destroying this Activity and restart it over the "long press home key menu", this Activity starts again. But I want to start the main activity instead. How could I realise this?

2条回答
贪生不怕死
2楼-- · 2020-07-22 19:52

The problem is like you started the activity from service-->Notification came-->user launch the app agian-->No notification-->main activity came on foreground Now if the application is started from the "long press home key menu" main activity is starting and showing the Notification.

so one Clear resolution is make Main activity as "Exclude From recent = true" and "No History = true;" user will not be able to see your activity in the "long press home key menu"

查看更多
Viruses.
3楼-- · 2020-07-22 19:58

Could you explain in more detail? If I understand your problem try setting the FLAG_ACTIVITY_NO_HISTORY.

Alternatively a manual solution would be to check the FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY on the intent in MyActivity and launch to the main activity if you see this flag set. The following code should do that:

if ((getIntent().getFlags() & FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) > 0) {
   activity.startActivity(new Intent(context , MainActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));    
}
查看更多
登录 后发表回答