我想将另一个应用程序带到前面,如果它已经运行,否则我不想做任何事情。
通常我会启动其他应用程序,如下所示:
ComponentName compName = new ComponentName(packageName, activityName);
Intent i = new Intent(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_LAUNCHER);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
i.setComponent(compName);
context.startActivity(i);
如果我删除Intent.FLAG_ACTIVITY_NEW_TASK
,则调用将抛出一个异常,指示不允许在非活动上下文中没有此标志的情况下启动活动...
我能以其他方式做我想做的事吗?
答案 0 :(得分:0)
首先检查应用程序是否处于运行状态。
ActivityManager am = (ActivityManager) mContext
.getSystemService(Activity.ACTIVITY_SERVICE);
String packageName = am.getRunningTasks(1).get(0).topActivity
.getPackageName();
这将返回在后台运行的活动的包名称。如果所需的包名称正在运行,则调用intent orelse不执行任何操作。