私のアプリケーションでは、ファイルの内容を見るためにstartActivityを使う必要があります。あるいは、デフォルトのアプリケーションを使って特定のファイルを開く必要があります。しかし、アンドロイドシステムが必要なアプリケーションをインストールしないことがあります。ActivityNotFoundExceptionを処理する方法は?
私の質問は、この例外を処理する方法です。私はトースト、FCではない。
アドバイスはありますか? THX
私のアプリケーションでは、ファイルの内容を見るためにstartActivityを使う必要があります。あるいは、デフォルトのアプリケーションを使って特定のファイルを開く必要があります。しかし、アンドロイドシステムが必要なアプリケーションをインストールしないことがあります。ActivityNotFoundExceptionを処理する方法は?
私の質問は、この例外を処理する方法です。私はトースト、FCではない。
アドバイスはありますか? THX
単に..マニフェストファイル内のような
を、そのアクティビティを追加
<activity android:name=".ActivityName"
android:label="@string/app_name">
</activity>
EDIT:今
ActivityNOtFoundException
は、
try {
// Your startActivity code wich throws exception
} catch (ActivityNotFoundException activityNotFound) {
// Now, You can catch the exception here and do what you want
}
注:これをキャッチするときは注意してください。ActivityNotFound Exceptionただし、マニフェストファイルを実行時に変更できないため、例外が発生した場合、実行時にこのアクティビティタグを追加することはできません。
申し訳ありません男..これは私が必要なものではありません。私はシステムにどのアクティビティを実行させるかを決定させたい。 – xuyao
あなたはトーストなどのエラーを表示したい場合は、
try {
startActivity(intent);
} catch (ActivityNotFoundException e) {
// TODO: handle exception
//Show Toast...
}
活動がマニフェストファイルに記載されていないため、エラーが発生します。
<activity android:name=".yourActivity"
android:label="@string/app_name">
</activity>
正しい〜ありがとう〜 – xuyao
あなたの質問は、「特定の例外を捕捉して強制クラッシュを防止するにはどうすればよいですか」と思っています。
try {
// here is your code that can potentially throw the exception and the force crash
} catch (ActivityNotFoundException activityNotFound) {
Toast.makeText(this, "your error message", Toast.LENGTH_SHORT).show();
// maybe also log the exception, for future debugging?
}
警告、この乱用しないでください: これは、あなたがコードでそれを行う方法である、それは「黙って飲み込む」の例外は危険だと不安定なアプリケーションを作成し、導入することができます奇妙なハード・ツー・デバッグの挙動。
ありがとう、それは私のために働く。 – xuyao
あなたが例外を処理したい場合、あなたはそれをキャッチし、ハンドル/お試し使用することができますresolveActivity
方法
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
}else {
Toast.makeText(this,"No suitable app found!",Toast.LENGTH_SHORT).show();
}
を使用することができます。そして、この種のExceptionを解決するには、あなたの活動をManifestファイルに登録する必要があります。 startActivityを使用するときは、アクティビティを登録する必要がありますが、すべてのアクティビティを登録ファイルに登録する必要はありません。 – anddev
OK。私は試しました。できます。 THX – xuyao
私の編集した答えを見てください。ありがとう.. – user370305