2

私は 2 つのアプリを持っています。そのうちの 1 つは、次のようなインテント フィルターを介して 2 番目のアプリからアクティビティを呼び出しています。

App1 (親アプリ) で呼び出す

Intent openApp = new Intent("com.app.intent.Activity2");
startActivity(openApp );

App2 (子アプリ) のインテント フィルター

    <activity
        android:name=".app.activity.Activity2"
        android:label="@string/app_name" 
        android:launchMode="singleInstance"
        >

        <intent-filter>
            <action android:name="com.app.intent.Activity2" />
            <category android:name="android.intent.category.BROWSABLE"/> 
            <category android:name="android.intent.category.DEFAULT"/> 
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

ある時点で親アプリケーションを閉じる必要がありますが、問題は 2 番目のアプリケーションの Activity2 も強制終了されることです。Activity2 が実際に同じパッケージで実行されていることがわかります。親アプリケーションが閉じられた後でも Activity2 を永続化して実行する方法はありますか?

ありがとうございました

4

2 に答える 2

1

このディスカッションには、必要なものがあるようです。起動するパッケージから起動インテントを取得し、それをインテントで使用する必要があるようです。

Android で別のアプリケーションからアプリケーションを起動する

于 2012-04-25T19:13:33.933 に答える
0

Android は通常、同じ APK のすべてのコンポーネントを 1 つのプロセスで実行するため、それらのいずれかがプロセスをクラッシュさせると、それらはすべて失われます。

ただし、アクティビティまたはサービスを独自のプロセスに配置するように指示することはできます。

<activity
    android:name=".app.activity.Activity2"
    android:label="@string/app_name" 
    android:launchMode="singleInstance"
    android:process=":my_unique_process">

もちろん、プロセスが予期せず終了する場合は、それを理解して修正する必要がある問題です。これは一時的な回避策にすぎません。

于 2012-04-25T19:21:23.860 に答える