Android广播接收器在一段时间后无法工作

Android广播接收器在一段时间后无法工作,android,notifications,alarmmanager,Android,Notifications,Alarmmanager,我正在创建提醒通知。我使用AlarmService类创建通知,并使用AlarmReceiver类扩展BroadcastReceiver。通知已正确创建,但我仅在特定时间内收到这些提醒的通知。例如,如果我在30分钟后设置提醒,则通知不起作用。在我的服务课上,我返回START\u STICKY。这是我的代码: public class AlarmService extends Service{ .... while(...){ //call to the method to create notif

我正在创建提醒通知。我使用AlarmService类创建通知,并使用AlarmReceiver类扩展BroadcastReceiver。通知已正确创建,但我仅在特定时间内收到这些提醒的通知。例如,如果我在30分钟后设置提醒,则通知不起作用。在我的服务课上,我返回START\u STICKY。这是我的代码:

public class AlarmService extends Service{
....
while(...){
//call to the method to create notifications
createNotification(year, month, day_of_month, hour_of_day, minute, second, reminderID);
}
return START_STICKY;
}

//method to create notifications
public void createNotification(int year, int month, int day_of_month, int hour_of_day, int 

minute, int second, int reminderID){
        counter++;

        Calendar cal = Calendar.getInstance();       
        // add minutes to the calendar object
        cal.set(Calendar.MONTH,month);  // the month starts with JAN == 0
        cal.set(Calendar.YEAR,year);    
        cal.set(Calendar.DAY_OF_MONTH,day_of_month);
        cal.set(Calendar.HOUR_OF_DAY,hour_of_day);
        cal.set(Calendar.MINUTE,minute);
        cal.set(Calendar.SECOND,second);

        Intent alarmintent = new Intent(getApplicationContext(), AlarmReceiver.class);
        .......

        PendingIntent sender = PendingIntent.getBroadcast(getApplicationContext(), HELLO_ID+counter, alarmintent, PendingIntent.FLAG_UPDATE_CURRENT);

        AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
        am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), sender);

    }
//////////////////////////////////////////////////////////////////////////////

public class AlarmReceiver extends BroadcastReceiver {

    private static int NOTIFICATION_ID = 555;

    @Override
    public void onReceive(Context context, Intent intent) { 
         ........        

         NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
                    context)
                    .setSmallIcon(R.drawable.android100)
                    .setContentTitle(note)
                    .setLargeIcon(bitmap)
                    .setContentText(title)
                    .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));


            Intent notifyIntent =  new Intent(context, DisplayReminder.class);
            notifyIntent.putExtra("reminderID", ""+reminderID);


            PendingIntent contentIntent = PendingIntent.getActivity(context, reminderID, notifyIntent, PendingIntent.FLAG_UPDATE_CURRENT);
            mBuilder.setContentIntent(contentIntent);
            NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

            mNotificationManager.notify(NOTIFICATION_ID++, mBuilder.build());


    }.....
最后,我以这种方式启动服务表单活动,而不是主要活动:

Intent alarmServiceIntent = new Intent(getApplicationContext(), AlarmService.class);
startService(alarmServiceIntent);
这是我的清单文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.papp"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="14" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/android100"
        android:label="@string/app_name"
        android:theme="@style/AppHoloTheme">

        <activity
            android:name=".MainActivity"
            android:label="Le tue medicine" 
            android:screenOrientation="landscape">
        </activity>

        <activity
            android:label="Inserisci un nuovo promemoria"
            android:name=".InsertNewReminder">
        </activity>

        <activity
            android:label="Anteprima promemoria"
            android:name=".DisplayOverview">
        </activity>

        <receiver android:name=".AlarmReceiver">
<!--                    <intent-filter>
                    <action android:name="android.intent.action.BOOT_COMPLETED"></action>
                    </intent-filter> -->
        </receiver>

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

        <activity
            android:label="@string/app_name"
            android:name=".GalleryListMainActivity">
             <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity
            android:label="Salvataggio promemoria"
            android:name="com.example.papp.DbActivity">
        </activity>

        <activity
            android:label="Salvataggio promemoria"
            android:name=".InsertNewRemindeResponse"
            android:launchMode="singleTask">
        </activity>

        <activity
            android:label="Promemoria"
            android:name=".DisplayReminder">
        </activity>

        <activity
            android:label="Modifica promemoria"
            android:name=".UpdateReminder">
        </activity>


       <receiver android:name=".BootReceiver" android:enabled="true" android:exported="true">
            <intent-filter >
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
            </intent-filter>
        </receiver>  

          <activity
            android:label="Cancellazione promemoria"
            android:name=".DeleteReminder"
            android:launchMode="singleTask">
        </activity>



    </application>

    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-feature android:name="android.hardware.camera" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    <uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>

</manifest>
我尝试了不同的尝试,但没有成功:我确信如果我手动关闭应用程序,由于启动粘滞,服务会自动重启。
有什么建议吗?谢谢…

在这里检查我的问题。。。也许你会有一些想法,但我不会关掉设备。设备是开着的,但是在一段时间后通知不起作用……我已经为不同的类创建了不同的包。现在我已经在一个包中插入了所有类,但问题仍然存在。前约30分钟内的混音器正确显示,而在一定时间段内(例如30分钟内)没有任何事情发生。请帮助meSorry bro我帮不了你,但自从我提出这个问题以来,我真的从来没有做过闹钟或提醒,因为我忙于其他项目。但我还是会在周日前帮你。这是肯定的。而且,我尝试使用IntentService而不是Service,但结果是一样的。。。