Android重启App
- 前言
自动重启App,这个需求会在很多地方用到,举两个例子:登录过期后、退出登录。想必大家百度过也有一定的处理方案,但是这些方案不是太复杂就是无效,还有就是cv选手,百度的东西真需要自己好好斟酌一下。避免大家踩坑也方便自己回顾,这里记录一下。
- 解决方案
Kotlin语法:
context.packageManager.getLaunchIntentForPackage(context.packageName)?.apply {
// 下面这个Flag至关重要,会清空栈里所有的Activity
addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
context.startActivity(this)
}
// 结束进程
Process.killProcess(Process.myPid())
- 缺陷分析
如果该App以startService()的方式开启了一个或多个Service,调用上述代码重启后会造成Service也重启。需要在结束进程前stop所有已开启的Service,比较麻烦。如果需要让Service绑定Application的生命周期,这里推荐的写法是context.bindService(),这个context是Application的上下文,解绑的时候需要注意一下connection的引用。原理我这就不展开说了,大家百度一下吧。
如果大家有什么更好的解决方案,欢迎下面留言。
今天的文章Android重启App分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/30905.html