Android 我应该如何使用alarmmanager每天和中午12点运行服务

Android 我应该如何使用alarmmanager每天和中午12点运行服务,android,notifications,broadcastreceiver,alarmmanager,Android,Notifications,Broadcastreceiver,Alarmmanager,我试图在每天晚上7点打开一个新的服务,它会在启动时通知我,但我无法解决这个问题,也无法理解为什么。有人能帮我吗谢谢这是密码 下面是我在DaysInteractivity类中编写的代码 Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, 19); calendar.set(Calendar.MINUTE, 05); calendar.set(Calendar.

我试图在每天晚上7点打开一个新的服务,它会在启动时通知我,但我无法解决这个问题,也无法理解为什么。有人能帮我吗谢谢这是密码


下面是我在DaysInteractivity类中编写的代码

    Calendar calendar = Calendar.getInstance();
    calendar.set(Calendar.HOUR_OF_DAY, 19);
    calendar.set(Calendar.MINUTE, 05);
    calendar.set(Calendar.SECOND, 00);


    Intent intent = new Intent(this, MyReciever.class);
    PendingIntent pintent = PendingIntent.getService(this, 0, intent, 0);


    AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 24*60*60*1000 , pintent);
这里是MyReviever类onRevcieve方法

    public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub

    Intent serviceIntent = new Intent();
    serviceIntent.setAction("com.saaram.MyService");
    context.startService(serviceIntent);
}

您的问题是
pintent
正在尝试运行服务,但
MyReceiver
是广播接收器。如果您将
MyReceiver
更改为服务,它将起作用

public class MyReceiver extends Service {


    public int onStartCommand(Intent intent, int flags, int startId) {
        //Anything you put here is run at the time you set the alarm to
        }

    @Override
    public IBinder onBind(Intent arg0) {
        // TODO Auto-generated method stub
        return null;
        }

    }
在您的清单中,您可以这样声明:

<service android:name=".MyReceiver"></service>

还可以帮助我了解相关的android manifest Receiver代码