AlarmManager и PendingIntent, которые не удалось - PullRequest
0 голосов
/ 13 января 2010

Чтобы узнать, как использовать 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>

1 Ответ

0 голосов
/ 10 января 2011

Таким образом, действие открывается, пользователь нажимает кнопку, действие закрывается, через 3 секунды открывается действие, повтор.сработала сигнализацияСоздайте PendingIntent, который начинает вашу деятельность, вот и все.Попробуйте это в своем классе деятельности - MyActivity в моем коде.

Intent intent = new Intent(MyActivity.this, MyActivity.class);
PendingIntent appIntent = 
        PendingIntent.getActivity(MyActivity.this, 0, intent, 0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...