今天因项目需求,让Android后台运行,在网上查找了哈资料,找到了一种比较简单的方式,不用service,模拟home键,该代码只能在启动程序中使用,其他activity会报空异常。贴上代码
//后台运行
private void mainservice(){
PackageManager pm = getPackageManager();
ResolveInfo homeInfo = pm.resolveActivity(new Intent(Intent.ACTION_MAIN) .addCategory(Intent.CATEGORY_HOME), 0);
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);
}
//后台运行
private void startActivitySafely(Intent intent){
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
try{
startActivity(intent);
}catch (ActivityNotFoundException e) {
Toast.makeText(this, "未发现该activity",
Toast.LENGTH_SHORT).show();
} catch (SecurityException e) {
Toast.makeText(this, "SecurityException",
Toast.LENGTH_SHORT).show();
}
}