我如何看待任务:打开任务管理器以查看。
我一直认为,从很久以前开始在当前任务中开展外部活动是不可能的。但我发现这是不正确的!
我的应用程序可以在同一任务中启动twitter / facebook / sms(单击任务管理器按钮时,我只能看到我的任务)。但这不适用于浏览器。我试过两个浏览器应用程序chrome和firefox。它们都不像twitter / facebook / sms
以下是打开facebook客户端和浏览器的代码。任何评论都会非常感激!
public Intent shareViaFacebook(Activity ctx) {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
ActivityInfo appInfo = searchForApp(ctx, intent, "facebook");
if (appInfo == null)
return null;
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setComponent(new ComponentName(appInfo.packageName, appInfo.name));
intent.putExtra(Intent.EXTRA_TEXT, "message");
return intent;
}
public Intent launchBrowser(Activity ctx, String url) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
ActivityInfo appInfo = searchForApp(ctx, intent, null);
if (appInfo == null)
return null;
intent.setComponent(new ComponentName(appInfo.packageName, appInfo.name));
intent.addCategory(Intent.CATEGORY_LAUNCHER);
return intent;
}
答案 0 :(得分:2)
总结一下:正在启动的外部活动是否可以在同一个任务中取决于它自己的声明。
另一个例子,Android Browser应用程序声明了 Web浏览器活动应始终在其自己的任务中打开 - 通过指定 元素中的singleTask启动模式。这意味着 如果您的应用程序发出打开Android浏览器的意图,那么 活动未与您的应用程序放在同一任务中。代替, 要么为浏览器启动新任务,要么已经启动浏览器 有一个在后台运行的任务,该任务被提前 处理新意图。
来自官方文件。