从通知调用的 activity 返回时如何留在应用程序中?

how to stay in app while pressing back from activity which is called from notification?

当我从通知中调用 activity 时,我会指示此 activity 是从通知中调用的,因此当我的用户按下后退按钮时,我确保将他留在应用程序。

@Override
protected void onDestroy() {

    Bundle extras = getIntent().getExtras();
    if (extras != null) {
        if (extras.containsKey(ARG_ACTIVITY_ORIGIN) && extras.getInt(ARG_ACTIVITY_ORIGIN) == CONSTS_APP_GENERAL.ACTIVITY_ORIGIN_NOTIFICATION) {
            Intent i = new Intent(this, MainActivity.class);
            startActivity(i);
        }
        finish();
    }
    super.onDestroy();
}

不过,这种方式的过渡并不顺利。 Activity 关闭然后屏幕闪烁并将新的 (MainActivity) 置于最前面。

我确信有更好的方法,也许是标准方法,可以达到相同的结果。您如何确保用户在通过通知进入时停留在您的应用程序上?

通过覆盖 onBackPressed() 而不是调用 super.onBackPressed()

来捕获后退按钮会干净得多

这样,应用程序就不会退出,也不必重新启动。