我有一个播放广播电台的应用程序,现在我想整合一个闹钟,以便在闹钟响起时播放一个广播电台。我一直在研究报警管理器,这似乎是最好的方法。
我的应用程序有一个警报按钮,可以调用一个对话框来设置警报。如果设置了闹钟,我需要让我的应用在指定时间开始。但是,我在使用这部分代码时遇到了问题:
Intent intent = new Intent("some Context", null, null, MainActivity.class);
PendingIntent pendInt = PendingIntent.getBroadcast("some Context", 0, intent, 0);
AlarmManager alarmService = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmService.set(AlarmManager.RTC_WAKEUP, timeToSound, pendInt);
具体来说,我对context
需要的内容感到困惑。我见过很多例子,但没有人真正详细解释过。如果有人能对这件事情有所了解,我将不胜感激
更多可能有帮助的代码...
@Override
protected Dialog onCreateDialog(int id) {
Dialog d = null;
switch (id) {
case LINEUP_DIALOG_ID:
d = new LineupDialog(this);
d.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
WindowManager.LayoutParams lp = d.getWindow().getAttributes();
lp.dimAmount = 0.5f;
d.getWindow().setAttributes(lp);
break;
这会调用我的对话框^
private View.OnClickListener lineupAction = new View.OnClickListener() {
@Override
public void onClick(View v) {
//showAlarm();
showDialog(LINEUP_DIALOG_ID);
}
};
这两个都在我的mainActivity中
然后我有一个保存布局的xml文件(如果需要可以提供..只允许用户选择时间和复选框,然后保存)
保存按钮有一个onclickListener ---它在我的LineupDialog类中扩展了我的NavDialog,而我的navdialog只是扩展了Dialog。
答案 0 :(得分:0)
凯尔,
它应该是包上下文,但这有时取决于您在代码中创建Intent
和PendingIntent
的位置。您刚试过this
或getApplicationContext()
吗?
答案 1 :(得分:0)
事实证明我还需要创建一个新类...上下文的一部分通过创建一个变量来工作,而且如果有其他人需要它,这里是我必须创建的新服务的代码。
//imports here
public class AlarmService extends Service{
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
//System.out.println("hello im in the alarmService Binder");
return null;
}
@Override
public void onStart(Intent intent, int startid) {
Intent mainAct = new Intent("android.intent.action.MAIN");
//System.out.println("hello im in the alarmService onStart " + mainAct);
mainAct.setClass(AlarmService.this, MainActivity.class);
mainAct.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mainAct.putExtra("alarm","true");
startActivity(mainAct);
}
@Override
public void onCreate() {
//System.out.println("hello im in the alarmService onCreate");
//code to execute when the service is first created
}
}
然后不要忘记将它添加到您的清单