0
나는 웹 페이지를 표시하기 위해 webview를 사용하는 Android 앱을 개발 중입니다. 대부분의 코드는 webview와 관련이 있습니다. 내 주요 활동에는 특정 웹 사이트를 표시하는 웹보기가 포함되어 있습니다.Android에서 Webview 데이터베이스 손상
내 webview.db가 손상되면 오류를 방지하려고합니다. 그게 일반적인 상황은 아니지만 내 애플 리케이션이 충돌하지 않도록하고 싶습니다.
이 손상되었을 때 webview 데이터베이스에 액세스하려고하면 충돌이 발생합니다.
예외를 처리하기 위해 setUncaughtExceptionHandler 메소드를 추가했습니다. 나는 예외를 잡을 수 있지만 내 애플 리케이션을 다시 시작하려고 할 때 webview로드를 완료하지 마십시오.
나는 내 응용 프로그램을 "다시 시작"을 추적 코드를 시도 : 내 마지막 시도 후 나는 웹보기 데이터베이스를 제거, 오류 메시지를 표시하고 응용 프로그램을 닫습니다 일부 코드를 추가 실패했다 Intent i = new Intent(context, Error.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
.
AlertDialog alertDialog = new AlertDialog.Builder(
DiscoverMobile.this).create();
alertDialog.setTitle("Error");
alertDialog.setMessage("Application files have been deleted or corrupted. The app will close to fix this issue. You can restart the app later");
alertDialog.setButton("OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
webview.getContext().deleteDatabase(
"webview.db");
webview.getContext().deleteDatabase(
"webviewCache.db");
WebViewDatabase webViewDB = WebViewDatabase
.getInstance(getBaseContext());
System.exit(0);
}
});
alertDialog.show();
이 것이 좋은 해결책일까요?