Я столкнулся с этой ошибкой только на IE9:
SCRIPT575: Не удалось завершить операцию из-за ошибки c00c023f.
Ошибка произошла в этой строке: , если ((a.responseXML) & & (a.readyState = = 4)) {
Я не могу выяснить, почему это произошло, и это работает очень хорошо в других браузерах.
и это мой javascript код:
var a = new XMLHttpRequest();
a.open("GET",'/cust/ajax/getresult.php?qk=nnf87&arg1='+pzid,true);
a.onreadystatechange = function () {
if ((a.responseXML) && (a.readyState==4)) {
var N = a.responseXML.getElementsByTagName('result')
sequence = N[0].firstChild.data;
var SEQ = sequence.split(",");
var num = SEQ.length;
var sum = 0;
for(var n=0;n<num;n++){sum = sum + (SEQ[n]*1);}
//document.getElementById("the_number_of").innerHTML = sum;
var date = new Date();
date.setTime(date.getTime()+(2*60*60*1000));
document.cookie='cpa_num='+sum+'; expires= '+date.toGMTString()+'; path=/';
}
}
-121--1300325- Я внедрил AlarmManager для пробуждения телефона один раз в день для выполнения задачи обновления, обновления виджетов и отправки уведомлений, если применимо.
Я использую setRepeating
и EFFAPSED _ REALTIME _ WAKEUP
Аварийный сигнал срабатывает первый раз ( SystemClock.elapsedRealtime () + 60000
)
но он не запускается 86400000
миллисекунд (24 часов) позже.
Действительно борясь с этим, я рад принять, что я делаю что-то неправильно или если есть лучшие способы достичь того, что я пытаюсь сделать. Однако я думаю, что мой код выглядит как стандартная вещь, которую люди, кажется, делают.
Как будто повторяющийся аварийный сигнал не делает того, что он говорит, во всех случаях. Если я сокращаю интервал, чтобы сказать, что 10 минут он работает, мой аварийный сигнал срабатывает, и служба выполняется снова и снова.
Природа моего приложения означает, что обновление более одного раза в день является чрезмерным. Мне нужно найти реалистичное надежное решение.
Спасибо за ваше время и надежду, что вы можете указать мне в правильном направлении.
Вот мой код реализации сигнализации...
Manifest:
<receiver android:name=".SystemChangeReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE" />
</intent-filter>
</receiver>
<receiver android:name=".UpdateAlarmReceiver" />
<service android:name=".UpdateService" />
<receiver android:name=".WidgetProviderSmall" android:label="@string/widget_small_label">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/appwidget_small" />
</receiver>
<receiver android:name=".WidgetProviderLarge" android:label="@string/widget_large_label">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/appwidget_large" />
</receiver>
SystemChireReceiver
прослушивает широковещательную загрузку, проверяет, требуется ли набор аварийный сигнал, если да, то устанавливает ли он.
SystemChureReceiver
:
@Override
public void onReceive(Context context, Intent intent) {
SharedPreferences prefs = context.getSharedPreferences(context.getString(R.string.prefs_name), 0);
Boolean notifications = prefs.getBoolean("enable_updates", false);
if(notifications == true) {
Utils.setNotificationAlarm(context);
}
}
Метод setNotifityAlarm устанавливает повторяющийся аварийный сигнал...
public static void setNotificationAlarm(Context context) {
AlarmManager alarmManager=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, UpdateAlarmReceiver.class);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0);
alarmManager.setRepeating(
AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime()+60000,
86400000,
pi);
}
Когда тревога приводит в действие мой приемник , UpdateAlarmReceiver
решает, что сделать и использование , WakefulIntentService
управляет моим фоновым процессом обновления, укладчик для обслуживания тогда обновляет виджеты и посылает уведомления как требуется
UpdateAlarmReceiver
:
public void onReceive(Context context, Intent intent) {
WakefulIntentService.sendWakefulWork(context, UpdateService.class);
}