私は最初の 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) は私が望むものに適した方法ではありませんが、それをどのように変更する必要があるか、またはより根本的な変更が必要かどうかはわかりません。
助けてくれてありがとう。