この質問は、 How to close or stop a external app that I started in Android で行われた提案から派生したものです。
私は、産業用プロセスのリモートコントロールである Android アプリを作成しています。プロセスは、Android アプリと常に通信している PC 上で実行されます。PC が PDF ファイルを Android に送信し、AdobeReader を起動することがあります。 apk で表示します。PCが画像を閉じると、Androidで閉じたいと思います。
上記のリンクで、AdobeReader を起動すると、コードからシャットダウンする方法がないと言われました。 ただし、アプリを前面に戻すことができるかもしれません。これは、私の目的には適しています。しかし、私はそれを機能させることができませんでした。私のアプリの主なアクティビティは RemoteControlActivity で、試しました:
try {
Intent i = new Intent(ctx, RemoteControlActivity.class);
ctx.startActivity(i);
}
catch (ActivityNotFoundException e) {
Log.d("ShowButtons(normal)", "Hide");
}
また、 startActivity ( ) 呼び出しの前に、Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_FROM_BACKGROUND運が悪い。
マニフェストでは、remoteControlActivity の起動モードはsingleTaskです
デバッガーでは、StartActivity()は Catch 句に到達せずに呼び出されますが、RemoteControlActivity の onRestart または onResume ハンドラーでブレークポイントにヒットしません。
前もって感謝します!
編集: 以下の回答では、別のフラグが提案されていたので、試してみました:
try {
Intent i = new Intent(ctx, RemoteControlActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK );
ctx.startActivity(i);
}
catch (ActivityNotFoundException e) {
Log.d("ShowButtons(normal)", "Hide");
}
...しかし運が悪い-デバッガーではstartActivityを呼び出し、catchブロックには到達しませんが、何も起こりません。
さらに編集:マニフェストを求められました。主なアクティビティの部分は次のとおりです。
<activity android:launchMode="singleTask"
android:label="@string/app_name"
android:windowNoTitle="false"
android:configChanges="orientation"
android:screenOrientation="landscape"
android:name="RemoteControlActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>