Android闹钟管理器无法使用三星Galaxy手机

时间:2011-01-07 10:59:10

标签: android

我创建了一个应用程序,它轮询服务器以获取必须发送给我们用户的SMS。对于轮询功能,我使用警报管理器每隔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手机上安装了应用程序。

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

可能是什么问题

2 个答案:

答案 0 :(得分:0)

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

http://hub.buzzbox.com/android-sdk/

您可以使用cron字符串安排任务:

SchedulerManager.getInstance()
    .saveTask(this, "*/5 8-19 * * 1,2,3,4,5", YourTask.class);

我有一个Galaxy S,我在我的一些应用中使用了BuzzBox SDK。 您可以检查SDK中集成的调度程序日志,以验证您的任务是否正常运行。

答案 1 :(得分:0)

在深度睡眠状态下,三星手机上的AlarmManager无法正常工作:( BuzzBox SDK使用AlarmManager,因此它有同样的问题(我在Galaxy 5500上测试过)。 例如http://www.netzpurist.de/2010/11/samsung-gt-i5500-with-android-2-1-update1-alarmmanager-not-suitable/