您的位置:首页 > 编程语言 > Lua

android根据packagename激活后台程序到前台/打开程序(与在luancher中点击应用图标效果相同)

2015-09-11 09:19 489 查看
废话不说,留着自己以后查找方便,要实现在lunancher中的点击效果,(程序后台就激活到前台,而不是启动某一个activity新实例)
关键是设置intent的flag,

intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT

| Intent.FLAG_ACTIVITY_NEW_TASK

| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);

intent.addCategory(Intent.CATEGORY_LAUNCHER);

//这东西虽然没啥技术含量可是时间久了,记不住(也没必要记)在这记录一下用到回来查

启动或者激活后台正在运行的 程序

private void RunApp(Context context,String packageName) {
Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName);
ActivityManager manager = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> task_info = manager
.getRunningTasks(20);
String className = "";
for (int i = 0; i < task_info.size(); i++)
{
if (packageName.equals(task_info.get(i).topActivity.getPackageName()))
{
className = task_info.get(i).topActivity
.getClassName();
//这里是指从后台返回到前台  前两个的是关键
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
try {
intent.setComponent(new ComponentName(
context, Class.forName(className)));
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}//
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT
| Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
context.startActivity(intent);
return ;
}
}
Intent intent2 = context.getPackageManager().getLaunchIntentForPackage(packageName);
context.startActivity(intent2);
}


判断当前应用程序处于前台还是后台/没运行
/**
* 判断当前应用程序处于前台还是后台
* @param context
* @return 程序没有运行或者在后台运行 true,程序在前台运行返回false
*/
public static boolean isApplicationBroughtToBackground(final Context context) {
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> tasks = am.getRunningTasks(1);
if (!tasks.isEmpty()) {
ComponentName topActivity = tasks.get(0).topActivity;
if (!topActivity.getPackageName().equals(context.getPackageName())) {
return true;
}
}
return false;

}


以上代码来自网络整理
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: