私はメインアクティビティをフォアグラウンドに持ってきようとしたときにSecondActivityでOnDestroyメソッドが呼び出される問題に遭遇しています。この方法は、デモ・アプリケーションで呼び出されていないonDestroy私はフォアグラウンド(Module1の)にMainActivityを持って来る時はいつでも、しかしonDestroy方法は、私のメインのプロジェクトに呼び出されます。.. ユースケース:私のアクティビティがバックグラウンドにプッシュされたときにonDestroyメソッドが呼び出されます
1)起動アプリ
2)MainActivityがフォアグラウンドで実行されていますSecondActivity
から
3)移動 4)は、戻るボタンをタップ - >は
注意を前面にMainActivityをもたらす:私は前面にMainActivityを持ったとき、私はOnDestroyが呼ばれるようにしたくありません。 観測:メインプロジェクトのStacktraceを見つけるために、手動で例外onDestroyをスローしました。以下の例外を見つけてください。 MainActivityをフォアグラウンドにすると、MainActivityのアクションを実行するとすぐにSecondActivityが殺されます。たManifest.xml
<application android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name" android:supportsRtl="true">
<activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"
android:label="@string/activity_name" android:noHistory="false"
android:screenOrientation="portrait"
android:launchMode="singleTop" android:name="MainActivity"
android:theme="@android:style/Theme.DeviceDefault.NoActionBar" android:windowSoftInputMode="adjustResize">
<intent-filter android:label="@string/launcher_name">
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
のModule1:デモアプリケーションと私のプロジェクトでは、私は...活動の間
Exception:
01-11 18:16:43.806 29045-29045/c W/System.err: at com.test.abc.mashup.SecondActivity.onDestroy(SecondActivity.java:240)
01-11 18:16:43.806 29045-29045/c W/System.err: at android.app.Activity.performDestroy(Activity.java:7102)
01-11 18:16:43.806 29045-29045/c W/System.err: at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1170)
01-11 18:16:43.806 29045-29045/c W/System.err: at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:5039)
01-11 18:16:43.806 29045-29045/c W/System.err: at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:5084)
01-11 18:16:43.806 29045-29045/c W/System.err: at android.app.ActivityThread.access$1700(ActivityThread.java:221)
01-11 18:16:43.806 29045-29045/c W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1853)
01-11 18:16:43.806 29045-29045/c W/System.err: at android.os.Handler.dispatchMessage(Handler.java:102)
01-11 18:16:43.806 29045-29045/c W/System.err: at android.os.Looper.loop(Looper.java:158)
01-11 18:16:43.806 29045-29045/c W/System.err: at android.app.ActivityThread.main(ActivityThread.java:7224)
01-11 18:16:43.806 29045-29045/c W/System.err: at java.lang.reflect.Method.invoke(Native Method)
01-11 18:16:43.806 29045-29045/c W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
01-11 18:16:43.806 29045-29045/c W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
01-11 18:16:44.931 29045-29045/c D/ViewRootImpl: #3 mView = null
01-11 18:16:44.966 29045-29045/c I/Choreogr
Module1]をナビゲートするためにコルドバのフレームワークを使用しています主な活動
receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
//do something based on the intent's action
Intent nativeIntent= new Intent(context, MainActivity.class).setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
context.startActivity(nativeIntent);
}
};
モジュール2: Manifest.xml
<activity
android:launchMode="singleInstance"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
android:name=".SecondActivity"
android:configChanges="screenSize|orientation">
</activity>
モジュール2:セカンド活動
// onBackPressed event
@Override
public void onBackPressed() {
Intent intent = new Intent("com.myapp.mycustomaction");
sendBroadcast(intent);
}
開発者モード設定で[アクティビティを保存しない]をオンにしましたか? – Kyle
オフになっています... –