- 「アプリケーション」メニューの起動アイコンを使用して、アプリケーション「A」を通常どおり実行します。
- ホームボタンを押すと、アプリケーション「A」がまだ電話で実行されています。
- 次に、携帯電話に表示されているファイルを参照し、共有アクションを使用してこのファイルをアプリケーション「A」と共有します。
- ファイルは完全に共有されていますが、既に開いているアプリケーションのインスタンスを使用する代わりに、アプリケーション「A」の新しいインスタンスを開きます。
この新しいインスタンスを終了すると、最初のインスタンスがまだ実行されているため、アプリケーションのセキュリティ目標に関する問題になります。
FLAG_ACTIVITY_CLEAR_TOP を使用して最初のインスタンスでアクティビティを使用しようとしましたが、OS によって起動されるのと同じアプリケーションではないため、機能しません。
これを行う方法はありますか?はいの場合、従うべきヒントや手がかりを教えていただけますか?
私のマニフェスト:
<?xml version="1.0" encoding="utf-8"?>
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="8" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar" >
<activity android:name=".SplashScreenActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ExplorerActivity"
android:configChanges="orientation|keyboardHidden"
android:theme="@android:style/Theme.Light.NoTitleBar" >
</activity>
<activity
android:name=".ChooseDialogActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar" >
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND_MULTIPLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" />
</intent-filter>
</activity>
</application>
これが私のマニフェストです。通常のプロセス: SplashScreenActivity -> ExplorerActivity
共有プロセス: ChooseDialogActivity -> ExplorerActivity
私が望むのは、このアクティビティが既に存在する場合、2 番目は 1 番目ExplorerActivity
と同じでなければならないということです。ExplorerActivity