美文网首页
安卓App前后台切换基本判断

安卓App前后台切换基本判断

作者: _random | 来源:发表于2020-08-20 22:51 被阅读0次
class App : Application(){

    lateinit var app: Application

    override fun onCreate() {
        super.onCreate()
        app = this
        registerActivityLifecycleCallbacks(lifeImp)
    }


    inner class LifeCycleImp : ActivityLifecycleCallbacks {
        var foregroundActivities = 0
        var isChangingConfiguration = false

        override fun onActivityPaused(activity: Activity) {

        }

        override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) {
            if (savedInstanceState != null) {
                //若bundle不为空则程序异常结束重启整个程序
                val intent = Intent(activity, MainActivity::class.java)
                intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
                app.startActivity(intent)
            }

        }

        override fun onActivityStarted(activity: Activity) {
            foregroundActivities++
            if (foregroundActivities == 1 && !isChangingConfiguration) {
                Log.i("JOKER", "应用切换到前台")
            }
            isChangingConfiguration = false;

        }

        override fun onActivityDestroyed(activity: Activity) {

        }

        override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) {

        }

        override fun onActivityStopped(activity: Activity) {
            foregroundActivities--
            if (foregroundActivities == 0) {
                Log.i("JOKER", "应用切换到后台")
            }
            isChangingConfiguration = activity.isChangingConfigurations;
        }


        override fun onActivityResumed(activity: Activity) {

        }

    }
}
``

相关文章

网友评论

      本文标题:安卓App前后台切换基本判断

      本文链接:https://www.haomeiwen.com/subject/kjhyjktx.html