デバイスにインストールされているアプリを ListView に一覧表示する MyApp to android というアプリを作成しました。ListView の行をクリックすると、この行が指すアプリが開きます。
MyApp で開いたこのアプリがクラッシュすると、MyApp を閉じてホーム画面に移動します。
これを防ぐ方法はありますか?つまり、MyApp によって開かれたアプリがクラッシュした場合、クラッシュして MyApp に戻るだけで、クラッシュしてホーム画面に移動することはありません。
編集:「アクティビティComponentInfoを開始できません」
を示すコメントに基づくjava.lang.RuntimeException
あなたの例では、起動中のアプリListView
が呼び出されている間にアプリが呼び出されます。MyApp
App
いずれの場合も、App
クラッシュした場合、実行は に戻りMyApp
ます。したがって、ランチャーでクラッシュが発生していますMyApp
。
アプリのクラッシュを防ぐには、startActivity()
またはstartActivityForResult()
をtry/catch
ブロックで囲みます。
その後、MyApp
アプリケーションの起動に失敗した後もアクティビティは表示されたままになります。さらに、ブロック内にまたはメッセージ
を表示して、ユーザーにエラーを通知する機会が必要です。Dialog
Toast
catch()