【发布时间】:2014-03-01 04:07:17
【问题描述】:
伙计们,我认为这个问题是不言自明的。 我尝试了谷歌搜索,并遇到了各种解决方案,但都没有奏效..
这对我有用。 如果我没有设置广播接收器,则警报管理器可以工作,但如果我设置了广播接收器,它就不起作用。 我以前使用过广播接收器。
我知道这里有两种设置广播的方法
我都试过了……
如果有人想要代码,我可以在这里发布
public class Reminder extends Activity{
DatePicker dp;int month;
TimePicker tp;int year;long millisecond;
Button ok;String data2;int hour;int datee;int minutes;
BroadcastReceiver alarmReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Alarm worked", Toast.LENGTH_LONG).show();
}
};
public static final String ACTION_NAME = "com.helloworld.MYACTION";
private IntentFilter myFilter = new IntentFilter(ACTION_NAME);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.reminder);
Intent in = getIntent();
registerReceiver(alarmReceiver, myFilter);
dp = (DatePicker) findViewById(R.id.datePicker1);
tp = (TimePicker) findViewById(R.id.timePicker1);
ok = (Button) findViewById(R.id.ok);
ok.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
year = dp.getYear();
datee = dp.getDayOfMonth();
month = dp.getMonth();
hour = tp.getCurrentHour();
minutes = tp.getCurrentMinute();// day//mm//yy//min//hr
conversion_shit();
}});
}
protected void conversion_shit() {
int xhour;
String xx;
if(hour > 12)
{
xhour= (hour)-12;
xx="AM";
}
else
{ xx="PM"; xhour=(hour);
}
int monthint=(month);
String date= String.valueOf(datee)+"/"+monthint+"/"+String.valueOf(year)+ " " +String.valueOf(xhour)+":"+String.valueOf(minutes)+":00 " + xx ;
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss aa");
Date convertedDate = new Date();
try {
convertedDate = dateFormat.parse(date);
millisecond = convertedDate.getTime();
} catch (java.text.ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.i(String.valueOf(millisecond),convertedDate.toString());
Intent myIntent = new Intent(ACTION_NAME);
PendingIntent pendingIntent = PendingIntent.getService(Reminder.this, 0, myIntent, 0);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 10);
alarmManager.set(AlarmManager.RTC_WAKEUP, millisecond, pendingIntent);
Toast.makeText(Reminder.this, "Start Alarm", Toast.LENGTH_LONG).show();
}
}
【问题讨论】:
-
没有足够的信息来诊断。你只是说它似乎是
not working,不知道为什么。 -
@njzk2 你想要什么额外的信息?
-
请把报警管理器的代码和
BroadcastReceiver贴出来 -
让我们看看,嗯,代码不起作用。任何类型的日志都会很好,例如,描述您当前的调试工作? (不过,我不会称之为
extra) -
@AbdEl-RahmanEl-Tamawy 警报管理器在没有广播接收器的情况下工作正常,我还应该发布它的代码吗?