返回和退出-Compose

Posted on   006hjy  阅读(566)  评论(0编辑  收藏  举报

1.使用系统调用,直接结束pid:

android.os.Process.killProcess(android.os.Process.myPid())

缺点:退出应用程序时,没有过渡动画,很不优雅。

2.返回桌面:

复制代码
@Composable
fun HomeButton() {
    val context = LocalContext.current

    BackHandler(onBack = {
        // 拦截返回键事件,不让它回退到上一个界面
        // 然后执行返回桌面的操作
        context.startActivity(Intent(Intent.ACTION_MAIN).apply {
            addCategory(Intent.CATEGORY_HOME)
            flags = Intent.FLAG_ACTIVITY_NEW_TASK
        })
    })
}
复制代码

缺点:只能用来返回桌面

3.回上一个Activity:

复制代码
fun ShopScreen(current: Context) {
  val context = LocalContext.current
  BackHandler { // 这里定义返回键的逻辑 
  if (showcard) showcard = false
  else{
    if (current is Activity) {
      // context是Activity类型的对象
      current.finish()
    }
    // (current as? Activity)?.finish() //这样写也一样,等价于上方的is判断语句
}
复制代码

 

相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示