Есть ли какое-либо событие / намерение сообщить мне, когда происходит сбой или перезагрузка системы? - PullRequest
0 голосов
/ 02 августа 2011

Я реализовал функцию, которая будет обновлять базу данных при необходимости.

(например, измените значение одного из столбцов базы данных на B)

Если происходит сбой или перезагрузка системы или что-то в этом родечто вышло из строя,

есть ли что-то, что я могу узнать, затем могу обработать, чтобы восстановить базу данных обратно?

(например, восстановить одно из значений столбца базы данных обратно в A)

Спасибо за помощь.

Ответы [ 3 ]

0 голосов
/ 02 августа 2011

Когда устройство завершает работу, оно передает намерение и, зарегистрировавшись в этом эфире, вы можете получить вызов:

         public class YourReceiverName extends BroadcastReceiver{
            @Override
            public void onReceive(final Context context, Intent intent) {

                if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){
                //Do your task here....
                        }
                }
         }

добавить разрешение в файл манифеста:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

и зарегистрируйте этого получателя в файле манифеста:

    <receiver android:name="Your receiver name">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
        </receiver>

и для базы данных, это зависит от вас, как вы справляетесь с этим и что требует ваше приложение.

0 голосов
/ 02 августа 2011

Авария по определению не может быть поймана.

Вот что делает аварию крахом.

0 голосов
/ 02 августа 2011
<uses-permission android:name=”android.permission.RECEIVE_BOOT_COMPLETED” />

Определите BroadcastReceiver, который выполняет необходимые действия.

Вам понадобится ваш manifest sth вроде:

<receiver android:name=”.MyReceiver”>
    <intent-filter>
        <action android:name=”android.intent.action.BOOT_COMPLETED” />
    </intent-filter>
</receiver>
...