Android AlarmManager和失败的挂起事件
为了学习如何使用AlarmManager,我创建了一个活动 它由一个按钮组成。当按下按钮时 活动创建自己的意图并将其加载到 AlarmManager将在未来3秒钟内完成 活动打开,用户按下按钮,活动关闭,3秒 稍后活动打开,重复 问题是,3秒钟后我得到的不是打开活动,而是 错误: “应用程序[myappname]意外停止。请重试 再说一次,“除非我叫祝酒词,否则就行了 下面是按钮的代码:Android AlarmManager和失败的挂起事件,android,android-emulator,Android,Android Emulator,为了学习如何使用AlarmManager,我创建了一个活动 它由一个按钮组成。当按下按钮时 活动创建自己的意图并将其加载到 AlarmManager将在未来3秒钟内完成 活动打开,用户按下按钮,活动关闭,3秒 稍后活动打开,重复 问题是,3秒钟后我得到的不是打开活动,而是 错误: “应用程序[myappname]意外停止。请重试 再说一次,“除非我叫祝酒词,否则就行了 下面是按钮的代码: thanksButton.setOnClickListener(new View.OnClickListen
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>
所以活动打开,用户按下按钮,活动关闭,3秒钟后活动打开,重复
如果您只想在闹钟响时开始活动,则不需要任何服务。创建一个悬挂式帐篷,开始您的活动,仅此而已。在活动类中尝试此操作-MyActivity
在我的代码中
Intent intent = new Intent(MyActivity.this, MyActivity.class);
PendingIntent appIntent =
PendingIntent.getActivity(MyActivity.this, 0, intent, 0);