android - 定期轮询服务器并将响应显示为通知

时间:2014-01-02 16:30:38

标签: android notifications

我正在构建一个Android应用程序,我需要每隔三小时从服务器获取一些通知数据(文本),并使用NotificationManager将其显示为通知。我看了 here here ,但他们似乎对我很困惑。

我怎样才能完成这项工作?

2 个答案:

答案 0 :(得分:4)

使用具有待定意图的AlarmManager启动服务,从服务中对服务器进行API调用,创建通知,然后停止服务。

/**
 * Set up recurring location updates using AlarmManager
 */
public void setUpAlarm(Application context) {
    Intent intent = new Intent(context, MyService.class);
    PendingIntent pending_intent = PendingIntent.getService(context, 0, intent, 0);

    AlarmManager alarm_mgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
    alarm_mgr.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
            SystemClock.elapsedRealtime(), YOUR_INTERVAL, pending_intent);
}

上述代码将设置一个待处理的意图,即在您使用YOUR_INTERVAL变量设置的任何时间间隔内启动服务。从这里开始,只需创建“MyService”类即可进行API调用,并在收到服务器的响应后构建通知。

答案 1 :(得分:0)

您将要为此创建后台服务,这是一个很好的教程:

http://developer.android.com/training/run-background-service/create-service.html