summaryrefslogtreecommitdiffstats
path: root/src/com/android/browser/CrashRecoveryHandler.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/browser/CrashRecoveryHandler.java')
-rw-r--r--src/com/android/browser/CrashRecoveryHandler.java11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/com/android/browser/CrashRecoveryHandler.java b/src/com/android/browser/CrashRecoveryHandler.java
index bcdf8b03..c02eb075 100644
--- a/src/com/android/browser/CrashRecoveryHandler.java
+++ b/src/com/android/browser/CrashRecoveryHandler.java
@@ -109,7 +109,9 @@ public class CrashRecoveryHandler {
}
public void backupState() {
- mForegroundHandler.postDelayed(mCreateState, BACKUP_DELAY);
+ // Only write if we are not already destroyed
+ if (mController.getTabControl() != null)
+ mForegroundHandler.postDelayed(mCreateState, BACKUP_DELAY);
}
private Runnable mCreateState = new Runnable() {
@@ -118,8 +120,11 @@ public class CrashRecoveryHandler {
public void run() {
try {
final Bundle state = mController.createSaveState();
- Message.obtain(mBackgroundHandler, MSG_WRITE_STATE, state)
- .sendToTarget();
+ // block write of null values
+ if (state != null && mController.getTabControl() != null) {
+ Message.obtain(mBackgroundHandler, MSG_WRITE_STATE, state)
+ .sendToTarget();
+ }
// Remove any queued up saves
mForegroundHandler.removeCallbacks(mCreateState);
} catch (Throwable t) {