2 liuxiaoddd liuxiaoddd 于 2014.05.22 17:55 提问

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();
}   

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android项目源码适合新手的简单闹钟项目蓝宝闹钟
本项目是一个简单的闹钟项目源码,只有3个java文件。新手学习闹钟的上乘项目源码。本项目在实现闹钟基本功能的基础上。增加了更换闹钟背景的功能。
仿网上一款android闹钟的总结
一周前决定写一款自己独立开发的android小程序,从事开发以来,工作中的大多数时间浪费在了虚无的状态之中,带我的大姐给我讲了很多开发的道理,所以我决定辞职离开了,老板不知道如何锻炼新人,不明白学习应该一步一步来,带我的大姐可能感觉最爽的地方是我的能力对她的职务构不成任何威胁,基础没学好就让开始做难度很大的项目,一个零日语基础的人,每天和日本人在一起也学不会日语!        学习应该从基础入
Android基础入门教程——10.5 AlarmManager(闹钟服务)
本节带来的Android中的AlarmManager(闹钟服务),听名字我们知道可以通过它开发手机闹钟类的APP, 而在文档中的解释是:在特定的时刻为我们广播一个指定的Intent,简单说就是我们自己定一个时间, 然后当到时间时,AlarmManager会为我们广播一个我们设定好的Intent,比如时间到了,可以指向某个 Activity或者Service!另外官方文档中有一些要注意的地方: 另外要注意一
简单的android闹钟源代码
本人亲自测试,可以运行,这个程序是我们上课时老师写的教学程序,简单易懂,拿出来和大家共享,和大家共同进步
android简单闹钟小程序
安卓的简单闹钟,但是增加了关闭闹钟的多种选择方式,比如答题解锁,摇一摇解锁
Android闹钟开发
概述:简单闹钟的实现 通过点击按钮弹出日期时间对话框,选择日期时间并确定,会自动保存。当设置的时间一到就弹出一个新的Activity界面并弹出AlerDialog对话框播放系统闹钟声音。最后实现AlerDialog的取消与跳转。 主页面布局:activity.main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res
Android 仿闹钟 及 通知栏的实现
一.闹钟的实现     这里运用了广播来实现,信息的传递    下面是代码   public class MainActivity extends AppCompatActivity { private AlarmManager alarmManager; private PendingIntent pendingIntent; @Override pro
Android 开发第五弹:简易时钟(闹钟)
这次是一个时钟类应用,目前依旧是主要的功能,长得还是很挫。当然了,核心功能是有的……闹钟之前的准备布局的话,不管是采用FrameLayout或者LinearLayout都可以。我这里采用了FrameLayout,然后加上一个TabHost,之前在论坛看到有同学提问在WF中这种多个栏目的用什么控件,我的答案是在WF、WPF、Windows App、ASP.NET以及安卓上都是Tab开头的控件。<Fra
Android开发实例之闹钟提醒
本实例通过TimePickerDialog时间选择对话框让用户设置闹钟并通过AlarmManager全局定时器在指定的时间启动闹钟Activity 。
简单的安卓闹钟源码
开发了一个简单的安卓闹钟源码,用到了service等组件,适合初学者参考。