Activity 生命周期函数执行顺序

2019-11-11  本文已影响0人  微笑中的你

第一步:使用AndroidStudio 创建一个空项目

覆盖生命周期函数 7个

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d("life","--------------- 1 : onCreate-------------------");
        setContentView(R.layout.activity_main);
    }
    @Override
    protected void onStart() {
        Log.d("life","--------------- 2 : onStart-------------------");
        super.onStart();
    }
    @Override
    protected void onResume() {
        Log.d("life","--------------- 3 : onResume-------------------");
        super.onResume();
    }
    @Override
    protected void onPause() {
        Log.d("life","--------------- 4 : onPause-------------------");
        super.onPause();
    }
    @Override
    protected void onStop() {
        Log.d("life","--------------- 5 : onStop-------------------");
        super.onStop();
    }
    @Override
    protected void onDestroy() {
        Log.d("life","--------------- 6 : onDestroy-------------------");
        super.onDestroy();
    }
    @Override
    protected void onRestart() {
        Log.d("life","--------------- 7 : onRestart-------------------");
        super.onRestart();
    }

1 debug 启动调试App

2 debug 启动调试App

第二步:然后添加一个Activity:LoginActivity

当点击“Hello World!”后,跳转到登录页面,登录页面我只放一个 “返回”按钮。

1 debug 启动调试App

2 debug 启动调试App

实现接口Application.ActivityLifecycleCallbacks 来管理所有的Activity生命周期方法

    @Override
    public void onActivityCreated(@NonNull Activity activity, @Nullable Bundle savedInstanceState) {

    }

    @Override
    public void onActivityStarted(@NonNull Activity activity) {
        //获取是否从后台启动
        SharedPreferences sharedPreferences = getSharedPreferences(LXF_KEY_APPSTATUS, MODE_PRIVATE);
        boolean fromBackground = sharedPreferences.getBoolean(LXF_KEY_FROMBACKGROUND, false);
        if (fromBackground){
            //如果是从后台打开app,那么就开始定位
            Log.d("life", "---------");
            setAppStatus(false);
        } else {

        }

    }

    @Override
    public void onActivityResumed(@NonNull Activity activity) {

    }

    @Override
    public void onActivityPaused(@NonNull Activity activity) {

    }

    @Override
    public void onActivityStopped(@NonNull Activity activity) {

    }

    @Override
    public void onActivitySaveInstanceState(@NonNull Activity activity, @NonNull Bundle outState) {

    }

    @Override
    public void onActivityDestroyed(@NonNull Activity activity) {

    }

结合onTrimMemory() 方法来进行判断后台进入到前台

    @Override
    public void onTrimMemory(int level) {
        super.onTrimMemory(level);
        if (TRIM_MEMORY_UI_HIDDEN == level){
            Log.d("life","--------------- 0 : onTrimMemory-------------------");
            setAppStatus(true);
        }
    }

上一篇 下一篇

猜你喜欢

热点阅读