アプリケーションに、何らかのタスクを実行するために他のアプリケーションのアクティビティにアクセスするアクティビティがあります (これは、Play ストア アプリからダウンロードされたアプリケーションである可能性があります)。ボタン クリック リスナーで次のコードを使用してアクティビティを開始します。
Intent i=new Intent();
i.setComponent(new ComponentName("com.myapp.package", "com.myapp.package.className"));
i.setAction(Intent.ACTION_MAIN);
startActivity(i);
他のアプリケーションに何らかのクラッシュがあり、何か間違ったことをしてクラッシュした場合。
その結果、私のアプリケーションはアクティビティ マネージャーによって黙って強制終了されます。ログの下を確認してください。
02-26 17:39:31.469 281 532 I ActivityManager: START {act=android.intent.action.MAIN flg=0x14000000 cmp=com.example.dummy.mydummyapp2.DummyApp2 (has extras) u=0} from pid 8487
02-26 17:39:31.469 281 532 W WindowManager: Failure taking screenshot for (230x143) to layer 22000
02-26 17:39:31.541 16816 16816 E AndroidRuntime: FATAL EXCEPTION: main
02-26 17:39:31.541 16816 16816 E AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.dummy.mydummyapp2/com.example.dummy.mydummyapp2.DummyApp2}: java.lang.NullPointerException
02-26 17:39:31.541 16816 16816 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
02-26 17:39:31.541 16816 16816 E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
02-26 17:39:31.541 16816 16816 E AndroidRuntime: at android.app.ActivityThread.access$600(ActivityThread.java:130)
02-26 17:39:31.541 16816 16816 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
02-26 17:39:31.541 16816 16816 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:99)
02-26 17:39:31.541 16816 16816 E AndroidRuntime: at android.os.Looper.loop(Looper.java:137)
02-26 17:39:31.541 16816 16816 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:4745)
02-26 17:39:31.541 16816 16816 E AndroidRuntime: at java.lang.reflect.Method.invokeNative(Native Method)
02-26 17:39:31.541 16816 16816 E AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:511)
02-26 17:39:31.541 16816 16816 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
02-26 17:39:31.541 16816 16816 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
02-26 17:39:31.541 16816 16816 E AndroidRuntime: at dalvik.system.NativeStart.main(Native Method)
02-26 17:39:31.541 16816 16816 E AndroidRuntime: Caused by: java.lang.NullPointerException
02-26 17:39:31.541 16816 16816 E AndroidRuntime: at com.example.dummy.mydummyapp2.DummyProvider.search(DummyProvider.java:136)
02-26 17:39:31.541 16816 16816 E AndroidRuntime: at com.example.dummy.mydummyapp2.DummyApp2.onCreate(DummyApp2.java:115)
02-26 17:39:31.541 16816 16816 E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:5008)
02-26 17:39:31.541 16816 16816 E AndroidRuntime: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
.
.
02-26 17:39:31.553 281 24382 W ActivityManager: Force finishing activity com.example.dummy.mydummyapp2/.DummyApp2
02-26 17:39:31.553 281 24382 W WindowManager: Failure taking screenshot for (230x143) to layer 22015
*****02-26 17:39:31.553 281 24382 W ActivityManager: Force finishing activity com.example.dummy.mydummyapp1/.activities.DummyApp1*****
02-26 17:39:32.053 281 294 W ActivityManager: Activity pause timeout for ActivityRecord{a7082df0 com.example.dummy.mydummyapp2/.DummyApp2}
02-26 17:39:32.437 281 281 I ActivityManager: No longer want com.google.android.partnersetup (pid 31498): hidden #16
*02-26 17:39:42.437 281 294 W ActivityManager: Activity destroy timeout for ActivityRecord{a7082df0 com.example.dummy.mydummyapp2/.DummyApp2}*
02-26 17:40:16.265 281 24383 I ActivityManager: Process com.example.dummy.mydummyapp2 (pid 16816) has died.
02-26 17:44:10.305 281 444 W ThrottleService: unable to find stats for iface rmnet0
私は、dummyapp2 でのクラッシュについては心配していません。他のアプリケーションでのクラッシュが原因で、自分のアプリがクラッシュした理由だけが心配です。
以下のように、インテントでさまざまなフラグを試しました。
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
と
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
しかし、結果はありません。
私のアプリケーションが他のアプリケーションからアクティビティを開始し、他のアプリケーションがクラッシュすると、私のアプリもクラッシュする場合、これは Android の通常の動作ですか???????
誰かが明確にしてください、私は立ち往生しています。
よろしく、