1
这是我的拳头应用程序,我试图使Alarm manager
与BroadcastReceiver
一起使用。广播接收器报警管理器
我用我希望Alarm manager
触发onReceive()
的时间调用函数“SetFutureStartTime()”。但是当时机到来时,什么也没有发生。
这是个代码:
public void SetFutureStartTime(int startHour, int startMin)
{
Context context = this;
m_alarmMgr = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, AlarmReceiver_SendOn.class);
intent.setAction("Broadcast");
m_alarmIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
// Set the alarm to start at 21:32 PM
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, startHour);
calendar.set(Calendar.MINUTE, startMin);
m_alarmMgr.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), m_alarmIntent);
}
public class AlarmReceiver_SendOn extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent) {
SendTcpMessage(TURN_ON_COMMAND); //I put here break point but nothing happens
}
}
这是manifast
末:
.....
</activity>
<receiver android:name=".MainActivity$AlarmReceiver_SendOn">
<intent-filter>
<action android:name="Broadcast">
</action>
</intent-filter>
</receiver>
</application>
我缺少什么?
是'AlarmReceiver_SendOn'一个内部类的'MainActivity'的,就像清单中显示的那样? –
嗨,是的......它在'MainActivity'里面。 – user1673206
如果你想让Receiver类成为一个嵌套类,它必须是'public static'。 –