重定义Home键后Android 强制退出并回到系统Home Screen的方法

通常情况下,按“Home”键可以回到“Home Screen”,这时你的应用可能还在后台运行。对于某些特殊情况,比如你重新定义了“Home“键防止用户退出你的应用,在某些情况下需要回到系统自带的Home 应用并强制退出应用。

假定能自定义的Home 应用名称为DummyActivity,你重新定义了Home 键,此时如过按“Home”键,系统会列出如下类似的列表:

此时如果将DummyActivity设为缺省“Use by default for this action”,以后用户将无法按“Home”键退回原有的Home应用。

在这种情况下,如果需要启动缺省的Home应用,可以通过PackageManager查询所有带有Intent.CATEGORY_HOME的Activity,启动其中名称不为DummyActivity 的Activity(系统缺省Home应用)。

private void exitApplication(){
MainMenuActivity.closeAllBelowActivities(MainMenuActivity.this);
finish();
try {
 
PackageManager localPackageManager = getPackageManager();
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
 
List<ResolveInfo> resolveInfos = localPackageManager
.queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
for (int i = 0; i < resolveInfos.size(); i++) {
ResolveInfo resolveInfo = resolveInfos.get(i);
ActivityInfo activityInfo = resolveInfo.activityInfo;
if (!activityInfo.name.endsWith("DummyActivity")) {
ComponentName componentName = new ComponentName(
activityInfo.packageName, activityInfo.name);
 
Intent intent1 = new Intent();
intent1.setComponent(componentName);
 
startActivity(intent1);
System.exit(0);
break;
}
 
}
 
} catch (Exception e) {
mLoger.info("default home screen not found "
+ e.getMessage());
}
 
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值