Android alarm manager不适用于三星Galaxy手机

Android alarm manager不适用于三星Galaxy手机,android,Android,我创建了一个应用程序,它轮询服务器以获取必须发送给用户的短信。对于轮询功能,我使用alarm manager每5分钟启动一次轮询服务器 AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE); Intent pintent = new Intent(this, SMSSender.class); PendingIntent pIntent = PendingInten

我创建了一个应用程序,它轮询服务器以获取必须发送给用户的短信。对于轮询功能,我使用alarm manager每5分钟启动一次轮询服务器

AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
        Intent pintent = new Intent(this, SMSSender.class);
        PendingIntent pIntent = PendingIntent.getBroadcast(this,0,pintent, 0);
        if(checkbox.isChecked()) {
            long interval = 60*Integer.valueOf(PreferenceManager.getDefaultSharedPreferences(this).getString("pref_poll_interval", "5000"));//5mins;//5mins
            long firstPoll = SystemClock.elapsedRealtime() + 60*Integer.valueOf(PreferenceManager.getDefaultSharedPreferences(this).getString("pref_poll_interval", "5000"));
            alarm.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstPoll, interval, pIntent);
            Log.d("SMS_GATEWAY", "alarm manager turned on "+interval);
        }else {
            alarm.cancel(pIntent);
            Log.d("SMS_GATEWAY", "alarm manager turned off");
        }
我已经在模拟器上对2.2版本的应用程序进行了测试,一切正常,现在测试短信的最终版本。我已经在三星Galaxy S手机上安装了该应用程序

一旦安装了应用程序并选择了轮询服务器的首选项,就不会发生任何事情


可能出现的问题是什么

请考虑使用BuzzBox SDK库解决您的问题

您可以使用cron字符串计划任务:

SchedulerManager.getInstance()
    .saveTask(this, "*/5 8-19 * * 1,2,3,4,5", YourTask.class);
我有一个Galaxy S,我在我的一些应用程序中使用BuzzBox SDK。
您可以检查SDK中集成的调度程序日志,以验证您的任务是否正常运行。

AlarmManager在处于深度睡眠状态的三星手机上无法正常工作:(BuzzBox SDK使用AlarmManager,因此它也有同样的问题(我在Galaxy 5500上进行了测试)。 例如

我在三星Galaxy S设备上遇到问题(很多!)。在这种情况下,我在读取默认共享pref时遇到问题,并在logcat中看到以下日志消息--您也看到了吗?“W/ApplicationContext(4563):未经允许尝试读取首选项文件/dbdata/databases/../shared\u prefs/..\u preferences.xml“此外,我发现只有在2.2.1上时才会出现一些对此的引用--您使用的是什么版本?