在没有 onpause() 或 onstop() 的情况下调用 ondestroy() 的 Android 场景

标签 android android-activity android-lifecycle

几天前,我被要求写下调用 ondestroy() 而没有调用 onpause() 或 onstop() 的场景。可能吗。如果是,请解释。

最佳答案

如果您尝试下面的代码,您会发现 onDestroy() 确实被调用而 onPause()onStop() 生命周期回调被跳过。

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        finish();
    }

    @Override
    protected void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();
        Log.e("MainActivity", "onDestroy");
    }

    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        Log.e("MainActivity", "onPause");

    }

    @Override
    protected void onStop() {
        // TODO Auto-generated method stub
        super.onStop();
        Log.e("MainActivity", "onStop");

    }

也就是说,如果你在onCreate()中创建Activity的时候调用finish(),系统会调用onDestroy()直接。

关于在没有 onpause() 或 onstop() 的情况下调用 ondestroy() 的 Android 场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27578708/

相关文章:

android - Fragments如何影响Activity "single, focused thing that the user can do"原理?

android - 在 android 中构建我自己的相机的问题

java - 我无法应用 gradle 6.x 插件

android - 自定义标记 - MPAndroidChart

android - 安卓专业版 2 : What are getTextView() and registerMenu()?

java - Android - 如何将 Activity 中的值保存到java类

android - ( Activity 娱乐) : what to do with a backstack built on invalidated data?

android-lifecycle - 我们应该在 Fragment/Activity 中取消注册 Flow 集合吗?

android - 从 Where 子句创建 Observable 时 Android 中可能存在 Realm 内存泄漏

java - W/System.err : org. json.JSONException : Value [] at 0 of type org. json.JSONArray 无法转换为 JSONObject