Weiß jemand, wie man den Stil des "force close" -Fensters ändert (FC dialog)? Ich habe ein benutzerdefiniertes ROM mit einem schönen Bild im Dialog gefunden. An welchem Ort kann ich das Popup finden?Wie ändert man den Stil von Android "Force Close" -Fenster?
Antwort
Try uncaughtException außer Kraft zu setzen,
@Override
public void uncaughtException(Thread thread, Throwable e) {
e.printStackTrace();
try {
// create your custom dialog
displayErrorMessageToast();
Thread.sleep(3500);
} catch (Exception e1) {
Log.e(TAG, "Error: ", e1);
}
finally
{
killApplicationProcess(e);
}
}
für weitere Informationen: https://groups.google.com/forum/?fromgroups=#!topic/android-developers/2iUH1Knz8gw
aber das ist nicht posibly alle System fc Dialog Stil auf diese Weise ändern. Ich muss nur den fc-Dialogstil ändern. – neverchange
Wenn Sie die Antwort von @Praful Bhatnagar verwenden, können Sie Ihre eigene UnCaughtException.java schreiben und den Thread für Ihre Aktivität wie folgt festlegen: Thread.setDefaultUncaughtExceptionHandler (new UnCaughtException (youractivity.this)); – Talha
Vielen Dank, diese Antwort könnte nur einen App fc Dialogstil ändern. aber ich möchte alle System App fc Dialogstil ändern. – neverchange
Versuchen Sie, die in diesem blog gegeben Ansatz
Kopieren hier zum schnellen Nachschlagen:
Android UncaughtExceptionHandler
Implementiert von Objekten, die Fälle behandeln möchten, in denen ein Thread durch eine nicht abgefangene Ausnahme beendet wird. Bei einer solchen Beendigung wird der Handler über den abschließenden Thread und die kausale Ausnahme benachrichtigt. Wenn kein expliziter Handler festgelegt ist, ist die Gruppe des Threads der Standardhandler.
Im Folgenden habe ich den Code geschrieben Benutzer kann einige Fehlerbericht an den Entwickler senden, wenn die Anwendung abgestürzt ist.
Aktivität Code
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.ViewFlipper;
/**
*
* @author vijayakumar
*
*/
public class AndroidMADQAActivity extends Activity {
ViewFlipper flipper;
TextView textView = null;
Throwable throwable;
UnCaughtException un = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Thread.setDefaultUncaughtExceptionHandler(new UnCaughtException(AndroidMADQAActivity.this));
Integer[] items = { R.drawable.a, R.drawable.e,R.drawable.d,R.drawable.c};
setContentView(R.layout.main);
textView.setText("Helloo Error Welcome");
}
}
UnCaughtException.java
package com.madqa;
import java.io.File;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.Writer;
import java.lang.Thread.UncaughtExceptionHandler;
import java.util.Date;
import java.util.Locale;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Environment;
import android.os.Looper;
import android.os.StatFs;
import android.util.Log;
/**
* {@link UncaughtExceptionHandler} send an e-mail with
* some debug information to the developer.
*
* @author VIJAYAKUMAR
*/
public class UnCaughtException implements UncaughtExceptionHandler {
private static final String RECIPIENT = "[email protected]";
private Thread.UncaughtExceptionHandler previousHandler;
private Context context;
private static Context context1;
public UnCaughtException(Context ctx) {
context = ctx;
context1 = ctx;
}
private StatFs getStatFs() {
File path = Environment.getDataDirectory();
return new StatFs(path.getPath());
}
private long getAvailableInternalMemorySize(StatFs stat) {
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return availableBlocks * blockSize;
}
private long getTotalInternalMemorySize(StatFs stat) {
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
return totalBlocks * blockSize;
}
private void addInformation(StringBuilder message) {
message.append("Locale: ").append(Locale.getDefault()).append('\n');
try {
PackageManager pm = context.getPackageManager();
PackageInfo pi;
pi = pm.getPackageInfo(context.getPackageName(), 0);
message.append("Version: ").append(pi.versionName).append('\n');
message.append("Package: ").append(pi.packageName).append('\n');
} catch (Exception e) {
Log.e("CustomExceptionHandler", "Error", e);
message.append("Could not get Version information for ").append(
context.getPackageName());
}
message.append("Phone Model: ").append(android.os.Build.MODEL).append(
'\n');
message.append("Android Version: ").append(
android.os.Build.VERSION.RELEASE).append('\n');
message.append("Board: ").append(android.os.Build.BOARD).append('\n');
message.append("Brand: ").append(android.os.Build.BRAND).append('\n');
message.append("Device: ").append(android.os.Build.DEVICE).append('\n');
message.append("Host: ").append(android.os.Build.HOST).append('\n');
message.append("ID: ").append(android.os.Build.ID).append('\n');
message.append("Model: ").append(android.os.Build.MODEL).append('\n');
message.append("Product: ").append(android.os.Build.PRODUCT).append(
'\n');
message.append("Type: ").append(android.os.Build.TYPE).append('\n');
StatFs stat = getStatFs();
message.append("Total Internal memory: ").append(
getTotalInternalMemorySize(stat)).append('\n');
message.append("Available Internal memory: ").append(
getAvailableInternalMemorySize(stat)).append('\n');
}
public void uncaughtException(Thread t, Throwable e) {
try {
StringBuilder report = new StringBuilder();
Date curDate = new Date();
report.append("Error Report collected on : ").append(curDate.toString()).append('\n').append('\n');
report.append("Informations :").append('\n');
addInformation(report);
report.append('\n').append('\n');
report.append("Stack:\n");
final Writer result = new StringWriter();
final PrintWriter printWriter = new PrintWriter(result);
e.printStackTrace(printWriter);
report.append(result.toString());
printWriter.close();
report.append('\n');
report.append("**** End of current Report ***");
Log.e(UnCaughtException.class.getName(),
"Error while sendErrorMail"+report);
sendErrorMail(report);
} catch (Throwable ignore) {
Log.e(UnCaughtException.class.getName(),
"Error while sending error e-mail", ignore);
}
// previousHandler.uncaughtException(t, e);
}
/**
* This method for call alert dialog when application crashed!
* @author vijayakumar
*/
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.setPositiveButton("Report", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent sendIntent = new Intent(Intent.ACTION_SEND);
String subject = "Your App crashed! Fix it!";
StringBuilder body = new StringBuilder("Yoddle");
body.append('\n').append('\n');
body.append(errorContent).append('\n').append('\n');
// sendIntent.setType("text/plain");
sendIntent.setType("message/rfc822");
sendIntent.putExtra(Intent.EXTRA_EMAIL, new String[] { RECIPIENT });
sendIntent.putExtra(Intent.EXTRA_TEXT, body.toString());
sendIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
sendIntent.setType("message/rfc822");
// context.startActivity(Intent.createChooser(sendIntent, "Error Report"));
context1.startActivity(sendIntent);
System.exit(0);
}
});
builder.setMessage("Unfortunately,This application has stopped");
builder.show();
Looper.loop();
}
}.start();
}
}
danke, aber ich möchte immer noch den System fc Dialogstil ändern. die Art und Weise, wie Sie für eine App funktionieren. Ich möchte Systemlevel ändern. wie: kann dalvik fangen eine ausnahme, rufen sie fc dialog. ich muss den dialogstil ändern. – neverchange
- 1. Wie ändert man den Zahlenauswahl-Stil in Android?
- 2. Wie ändert man UIBarButtonItem Stil?
- 3. Force Close on Button gedrückt
- 4. angularjs ng-grid: Wie ändert man den Header-Stil
- 5. Android Studio: Wie ändert man Standard-Cursor-Stil und Verhalten?
- 6. Zest: Wie ändert man den Stil der Verbindungslinie?
- 7. JavaScript: Wie ändert man den CSS-Stil des erstellten Bereichs?
- 8. Opening Facebook-Seite Ergebnisse in Force Close
- 9. Wie überschreibt man den Stil von android.R.layout.simple_list_item_multiple_choice?
- 10. Native Bug-Berichterstattung in Android erzwingen Force-Close-Dialog?
- 11. Wie ändert man Eingabetext-Stil in Zeile?
- 12. Force Close in app - Illegal bei java.util.Date.parse
- 13. Wie ändert man den Standardkontext von jQuery?
- 14. ist es möglich, den Standarddialog "Force Close" in Android zu ersetzen?
- 15. Wie Debuggen BOOT_COMPLETE Broadcast Receiver "Force Close" Abstürze?
- 16. Wie ändert man den Schemanamen?
- 17. Wie man den Anwendungskontext ändert
- 18. Android: Wie ändert man die Textfarbe von ProgressDialog?
- 19. Wie ändert man direkt den Stil des Quellcodes von react-native-scrollable-tab-view (Reactive Native)?
- 20. Wie weiß man, welches Fenster den Fokus hat und wie man es ändert?
- 21. Ändern Sie den Stil von Android MediaController
- 22. Wie ändert man den Rand oder das Auffüllen von Menüelementen?
- 23. Android - Wie ändert man Texte in den Einstellungen Aktivität dynamisch?
- 24. Wie ändert man den Ordnernamen des Projekts in Android Studio?
- 25. Wie testet man den Stil einer React Komponente mit Jest.js?
- 26. AlertDialog Styling - wie man den Stil (die Farbe) des Titels, der Nachricht usw. ändert
- 27. Wie kann ich den Force Close-Fehler in meiner Anwendung korrigieren
- 28. Wie überprüft man den Stil BS_AUTORADIOBUTTON der Schaltfläche
- 29. Wie ändert man die Größe von Schaltflächen automatisch, wenn das Fenster seine Größe ändert?
- 30. Taschenlampe - Wie ändert man den Tensortyp?
http://stackoverflow.com/questions/7533932/how-to-make-the-force-close-window- display-friendly-app-name-statt-von-a-packag –
Ich würde Ihnen empfehlen, den erzwungenen Schließen Dialog zu vermeiden, anstatt ihn zu stylen :) –