Чтобы узнать, как использовать AlarmManager, я создал действие
это состоит из единственной кнопки. Когда кнопка нажата
деятельность создает намерение себя и загружает его в
AlarmManager 3 секунды, прежде чем закончить.
Итак, активность открывается, пользователь нажимает кнопку, активность закрывается, 3 секунды
позже открывается активность, повторите.
Проблема в том, что вместо того, чтобы открывать упражнение через 3 секунды, я получаю
ошибка:
"Приложение [myappname] неожиданно остановилось. Пожалуйста, попробуйте
снова. "За исключением случаев, когда я вместо этого называю тост, это сработало.
Вот код для кнопки:
thanksButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
setResult(RESULT_OK);
Intent intent = new Intent(myappname.this,
myappnameBroadcastReceiver.class);
PendingIntent appIntent = PendingIntent.getBroadcast
(myappname.this, 0, intent, 0);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 3);
AlarmManager am = (AlarmManager)getSystemService
(ALARM_SERVICE);
am.set(AlarmManager.RTC, calendar.getTimeInMillis(),
appIntent);
finish();
}
});
Вот приемник вещания:
package com.myappname;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class myappnameBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
context.startActivity(new Intent(context, myappname.class));
}
}
и вот строки из manifest.xml
<receiver
android:name=".myappnameBroadcastReceiver"
android:process=":remote">
</receiver>