返回和退出-Compose

Posted on 2023-05-28 22:05  006hjy  阅读(509)  评论(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判断语句
}