Jetzt versuche ich dies.Nur fehlgeschlagen, um eine Verbindung zum Kamera-Service, führen Sie uncaughtException auf Android
MainActivity.java
Thread.setDefaultUncaughtExceptionHandler(new UncaughtException(MainActivity.this));
UncaughtException.class
public class UncaughtException implements Thread.UncaughtExceptionHandler {
private Context context;
private static Context context1;
public UncaughtException(Context ctx) {
context = ctx;
context1 = ctx;
}
public void uncaughtException(Thread t, Throwable e){
try {
StringBuilder report =new StringBuilder();
sendErrorMail(report);
} catch (Throwable ignore) {
Log.e(UncaughtException.class.getName(),
"Error while sending error e-mail", ignore);
}
}
public void sendErrorMail(final StringBuilder errorContent) {
final AlertDialog.Builder builder = new AlertDialog.Builder(context);
new Thread() {
@Override
public void run() {
Looper.prepare();
builder.setTitle("sorry.");
builder.create();
builder.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
System.exit(0);
}
});
builder.setMessage("OoOopps, Your application has crashed");
builder.show();
Looper.loop();
}
}.start();
}
}
diese gute Arbeit.
aber diese alle auftreten, Ausnahme zeigt Dialog.
Ich möchte, wenn nur auftreten `scheitern, um Kamera Service 'Ausnahme zu schließen, zeigt Dialog.
mit anderen Worten, wenn mein Gerät keine Kamera anschließen, zeigt Dialog. (nicht App stop Nachricht).
danke, aber ich verstehe nicht. Sie raten Kamera Ausnahme zu fangen? – chohyunwook
Siehe aktualisierte Antwort Ich habe Code-Snippet hinzugefügt –
Sie sollten in diesem Fall immer die Ausnahme fangen, die Sie zuerst kennen. Der UngoughtExceptionHandler ist mehr wie ein zweites Sicherheitsnetz, das Exceptions fangen kann, die Sie vielleicht vergessen haben. –