Activity stack ordering problem when launching application from Android app installer and from Home screen

五迷三道 提交于 2019-11-27 06:16:12

Added the answer that antonyt provided:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
        // Activity was brought to front and not created,
        // Thus finishing this will get us to the last viewed activity
        finish();
        return;
    }

    // Regular activity creation code...
}

The underlying issue I believe is that the Intents used are different between the launcher and the installer. In so far as you are getting different Intent flags you are going to get different launch behavior. You can muck with the launch modes and you may be able to get a consistent result but fundamentally those different Intents will produce different results.

Your fix (or something like this) is probably your best bet.

Nathan Fig

Your problem is likely rooted in the fact that App installer doesn't use the LAUNCHER category, as does the launcher.

This bug has been documented elsewhere:

App always starts fresh from root activity instead of resuming background state (Known Bug)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!