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判断语句
}