我正在编写我的第一个 android 应用程序,所以我会尽力做到清晰准确。我可以看到一些与此类似的问题,但似乎没有一个可以准确回答它,所以也许它无法完成,但这里有:
我的主要活动已经到了存储数据的地步,其中包括用户选择启动的设备上的应用程序列表。单击主活动屏幕上的按钮时,我希望设备依次启动每个选定的应用程序,然后(理想情况下)将用户返回到我编写的主要活动。我还想对运行每个应用程序定义一些限制 - 例如,每个应用程序运行 30 秒或直到应用程序停止使用互联网,以最早的时间为准。
我认为将所有这些链接到按钮单击没有任何问题,循环浏览所有选定的应用程序也没有任何问题。我真正需要的是启动每个应用程序然后从中调用/移动到下一个应用程序的代码(最好在 30 秒后或当应用程序停止使用互联网时)。希望下面的代码清楚地表明我在哪里寻找 TODO 的帮助。有谁知道这是否可行,如果可行,我该如何完成?
public class MainActivity extends Activity {
... //some code up here
//when the Run Apps button is clicked the onClick will run all of the selected apps using this Method:
public void RunApps(View view) {
//run through the list of Apps and run the ones that are selected
for (App application : list) {
if (application.isSelected()) {
/* TODO code that is meant to run the selected app and return to the main
* activity after say 30 seconds or when the app is done using the internet.
* As a starter I have the below but this is crashing and even if it did run
* I believe that it would not return me to the original main activity:
*/
Intent i = new Intent(Intent.ACTION_MAIN);
PackageManager manager = getPackageManager();
i = manager.getLaunchIntentForPackage(application.getPackageName());
i.addCategory(Intent.CATEGORY_LAUNCHER);
startActivity(i);
}
}
};
...//some more code here
}
只是几个注意事项 - App 类在其他地方定义,包括包名称以及用户是否选择了应用程序。list 是应用程序列表。
我相信 ACTION_MAIN 和 CATEGORY_LAUNCHER 值可能不是最好的使用方法,也许 startActivity(i) 不是我想要的正确方法,但不确定需要如何更改或是否需要进行更根本的更改。
非常感谢您的帮助。