打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Android 实现Activity后台运行

  Android 实现Activity后台运行

1,第一种方法

Intent intent = new Intent(Intent.ACTION_MAIN);

intent.addCategory(Intent.CATEGORY_HOME);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

startActivity(intent);


此方法经验证可用



2,第二种方法:

第二种方法

此方法其实主要是屏蔽Keycode_Back,让它不结束(finish()Activity,直接显示HOME界面。

PackageManager pm = getPackageManager();

                                ResolveInfo homeInfo = pm.resolveActivity(new Intent(Intent.ACTION_MAIN)

.addCategory(Intent.CATEGORY_HOME), 0);

public boolean onKeyDown(int keyCode, KeyEvent event) {

if (keyCode == KeyEvent.KEYCODE_BACK) {

ActivityInfo ai = homeInfo.activityInfo;

Intent startIntent = new Intent(Intent.ACTION_MAIN);

startIntent.addCategory(Intent.CATEGORY_LAUNCHER);

startIntent.setComponent(new ComponentName(ai.packageName,

ai.name));

startActivitySafely(startIntent);

return true;

} else

return super.onKeyDown(keyCode, event);

}

void startActivitySafely(Intent intent) {

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

try {

startActivity(intent);

} catch (ActivityNotFoundException e) {

Toast.makeText(this, R.string.unabletoopensoftware,

Toast.LENGTH_SHORT).show();

} catch (SecurityException e) {

Toast.makeText(this, R.string.unabletoopensoftware,

Toast.LENGTH_SHORT).show();

Log

.e(

TAG,

"Launcher does not have the permission to launch "

+ intent

+ ". Make sure to create a MAIN intent-filter for the corresponding activity "

+ "or use the exported attribute for this activity.",

e);

}

}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
关于Android隐式启动Activity的分析和说明
当系统存在多个Launcher时,如何设置开机自动进入默认的Launcher?
【转】如何设置系统唯一的 launcher?
monkey测试结果详细分析
Intent的Flag | 应用开发笔记
Android基础知识总结
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服