Я просмотрел десяток руководств и ответов на форумах по этой проблеме, но все еще не смог собрать рабочий код. Я постараюсь задать простой вопрос:
Как использовать AlarmManager (в Android API) для запуска Activity в заданное время? Подойдет любое решение этой проблемы.
Моя последняя попытка добиться этого приведена ниже.
(Импорт опущен. Я ожидаю, что MyActivity запустится через 3 секунды после открытия программы, чего не происходит. Сообщений об ошибках нет.)
public class AndroidTest2Activity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Context context = this;//.getApplicationContext();
AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); // CORRECT
Intent intent = new Intent(context, myReceiver.class); // CORRECT
PendingIntent pending = PendingIntent.getBroadcast( context, 0, intent, 0 ); // CORRECT
manager.set( AlarmManager.RTC, System.currentTimeMillis() + 3000, pending ); // CORRECT
setContentView(R.layout.main);
}
}
public class myReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
Intent i=new Intent(context, myActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
public class myActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("", "Elusive success");
setContentView(R.layout.main);
}
}
Мы будем благодарны за любые советы.
Обратите внимание: у меня уже есть myReceiver в манифесте