0
好吧,我有一个问题,我希望我能得到一些帮助。Android闹钟管理器不工作
我遇到的问题是我无法得到一个android闹钟管理器事件来激活,即使它看起来功能上与我见过其他人使用的一样。没有logcat输出来表明它是一个错误。
我会在下面附上我的代码,任何帮助将不胜感激。
添加的onclick到按钮(在这里我想经理从激活)
public void setOnClick() {
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent alarm = new Intent(getContext(), ActionHandler.class);
alarm.putExtra("event", event);
PendingIntent pi = PendingIntent.getBroadcast(getContext(), 0, alarm, 0);
AlarmManager alarmManager = (AlarmManager) getContext().getSystemService(Context.ALARM_SERVICE);
//alarmManager.set(AlarmManager.RTC_WAKEUP,1000*2*60, PendingIntent.getBroadcast(getContext(), 1, alarm, PendingIntent.FLAG_UPDATE_CURRENT));
//alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000 * 30, pi);
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, 1000 * 60,
AlarmManager.INTERVAL_DAY, pi);
Toast.makeText(getContext(), "buttong pushed for event " + event.eventName, Toast.LENGTH_SHORT).show();
}
});
}
清单
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.daniel.myapplication">
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
<receiver android:process=":remote" android:name="ActionHandler"></receiver>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/Theme.AppCompat.DayNight.DarkActionBar">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
报警监听
public class ActionHandler extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Event event = (Event)intent.getSerializableExtra("event");
Log.d("the listener event", "i have entered the event as " + event.eventName);
Toast.makeText(null, "hi, i'm an event called " + event.eventName, Toast.LENGTH_SHORT).show();
}
}
事件按钮的构造函数(类扩展按钮)
public EventButton(Context context, Event pEvent) {
super(context);
eventDate = pEvent.eventDate;
eventName = pEvent.eventName;
eventHost = pEvent.eventHost;
eventLocation = pEvent.eventLocation;
event = pEvent;
startingColor = button.getDrawingCacheBackgroundColor();
if (FileManager.compare(event)) {
button.setBackgroundColor(Color.RED);
} else {
button.setBackgroundResource(android.R.drawable.btn_default);
}
setOnClick();
this.setText(eventName + "\n " + eventHost);
}
创建一个新的按钮(从主要活动呼吁创建)
public void addButtonToList(String pHost, String pName,String pEventLocation, Calendar pDate){
Event event = new Event(pHost, pName, pEventLocation, pDate);
buttons.add(new EventButton(this, event));
}
你为什么把你的接收器的过程改为“:remote”? –
那是我试图按照指示尝试让它工作,我可能会误解 – daniel
你可以尝试删除该属性并检查? –