0
爲了學習如何使用AlarmManager,我創建了一個由單個按鈕組成的活動 。當按鈕被按下時, 活動會創建一個Intent,並在未來3秒內將其加載到AlarmManager中,然後結束。AlarmManager和失敗的PendingIntent
所以活動打開,用戶按下按鈕,活動關閉,3秒鐘後 打開,重複。
問題是不是開放活動3秒後我得到一個錯誤 : 「 [myappname]意外停止的應用程序,請再次嘗試 。」除了我稱呼Toast而已,這工作。
下面是按鈕的代碼:
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>