liuxiaoddd 2014-05-22 09:55
浏览 1108

android开的简单闹钟,模仿教程,出现问题求助

MainActivity.java如下
public class MainActivity extends ActionBarActivity {
private Button bt=null;
private AlarmManager am=null;
Calendar cal=Calendar.getInstance();
final int DIALOD_TIME=0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    am=(AlarmManager)getSystemService(ALARM_SERVICE);
    bt=(Button)findViewById(R.id.bt);
    bt.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            showDialog(DIALOD_TIME);
        }
    });
}

@Override
protected Dialog onCreateDialog(int id) {
    // TODO Auto-generated method stub
    Dialog dialog=null;
    switch(id){
    case DIALOD_TIME:
        dialog=new TimePickerDialog(this,new OnTimeSetListener() {

            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                Calendar c=Calendar.getInstance();
                //设置Calendar对象
                c.setTimeInMillis(System.currentTimeMillis());
                //设置时分秒毫秒
                c.set(Calendar.HOUR_OF_DAY,hourOfDay);
                c.set(Calendar.MINUTE,minute);
                c.set(Calendar.SECOND,0);
                c.set(Calendar.MILLISECOND,0);

                Intent intent=new Intent(MainActivity.this,AlarmReceiver.class);
                PendingIntent pi=PendingIntent.getBroadcast(MainActivity.this,0, intent, 0);
                am.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(), pi);
                Toast.makeText(MainActivity.this,"闹钟设置成功",Toast.LENGTH_SHORT).show();
            }
        } , Calendar.HOUR_OF_DAY, Calendar.MINUTE,true);
        break;
    }
    return dialog;
}

}

主要在这两句,
Intent intent=new Intent(MainActivity.this,AlarmReceiver.class);
PendingIntent pi=PendingIntent.getBroadcast(MainActivity.this,0, intent, 0);
am.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(), pi);
不知道为什么有时候闹钟会好,现在彻底不行了。。

AlarmReceiver.java如下
public class AlarmReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    Intent i=new Intent(context,AlarmActivity.class);
    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(i);
    MediaPlayer mp = new MediaPlayer();
    try {
        mp.setDataSource(context, RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE));
    } catch (IllegalArgumentException | SecurityException
            | IllegalStateException | IOException e) {
        e.printStackTrace();
    }
    try {
        mp.prepare();
    } catch (IllegalStateException | IOException e) {
        e.printStackTrace();
    }
    mp.start();
}   

}
求高手解答,菜鸟一枚。。

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 用visual studi code完成html页面
    • ¥15 聚类分析或者python进行数据分析
    • ¥15 逻辑谓词和消解原理的运用
    • ¥15 三菱伺服电机按启动按钮有使能但不动作
    • ¥15 js,页面2返回页面1时定位进入的设备
    • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
    • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
    • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
    • ¥20 腾讯企业邮箱邮件可以恢复么
    • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?