Intent intent =
new
Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
|
第二种方法
此方法其实不是主要是屏蔽Keycode_Back,让它不结束(finish())Activity,直接显示HOME界面。
1
2
3
|
PackageManager pm = getPackageManager();
ResolveInfo homeInfo = pm.resolveActivity(
new
Intent(Intent.ACTION_MAIN)
.addCategory(Intent.CATEGORY_HOME),
0
);
|
1
2
3
4
5
6
7
8
9
10
11
12
|
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);
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
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);
}
}
|