新手 android求问 在fragment中调用闹钟功能 不报错 但是闹钟就是没用

代码
public void setAlarm(BeanMsg tmp){

    int hourOfDay =Integer.parseInt( CurrentTime.getHour(tmp));
    int minute =Integer.parseInt( CurrentTime.getMinue(tmp));



    mCalendar.setTimeInMillis(System.currentTimeMillis());
    mCalendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
    mCalendar.set(Calendar.MINUTE, minute);
    mCalendar.set(Calendar.SECOND, 0);
    mCalendar.set(Calendar.MILLISECOND, 0);

    Log.v("hourOfDay",""+hourOfDay);
    Log.v("minute",""+minute);

        Intent intent = new Intent(getActivity(), AlarmReceiver.class);
    if(getActivity() == null)
    {
        isNUll = 1;
    }
    Log.v("isNULL",""+isNUll);
    PendingIntent pi = PendingIntent.getBroadcast(getActivity(), 0, intent,0);

        mAlarmManager=(AlarmManager)getActivity().getSystemService(MainActivity.ALARM_SERVICE);
    mAlarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), pi);

    Toast.makeText(this.getActivity(), "闹钟设置成功", Toast.LENGTH_LONG).show();//提示用户

这是 AlarmReceiver的代码
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);
}

}

这是AlarmActivity的代码
public class AlarmActivity extends Activity {

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            //显示对话框
            new AlertDialog.Builder(AlarmActivity.this).
                    setTitle("闹钟").//设置标题
                    setMessage("时间到了!").//设置内容
                    setPositiveButton("知道了", new OnClickListener(){//设置按钮
                public void onClick(DialogInterface dialog, int which) {
                    AlarmActivity.this.finish();//关闭Activity
                }
            }).create().show();


        }

}

当你启动AlarmActivity 的时候,之前那个fragment所在的activity到后台去了吧

// mCalendar.setTimeInMillis(System.currentTimeMillis());
这句先注释掉试试

闹钟属于系统服务,只有系统的进程的ID才能调用,建议自己创建ALertService模拟闹钟

建议使用PaddingIntent实现

系统的服务大部分需要添加权限的,你试试添加权限