在后台更新数据

时间:2014-09-29 07:26:14

标签: android performance service android-asynctask

在我的应用程序中,我需要从服务器更新定期更新的联系人列表,组列表和文件夹列表。我现在将它们保存到保存首选项中。目前我已经实现了一种方法,如果我有我需要的每种类型的列表,我会在登录时跳过更新并调用后台asyncTask,在登录后更新此数据。问题是用户可以登录的连接很少但是他们什么都不做,等待阻止其他http请求的后台更新。 如何定期刷新此数据?就像即使应用程序不活动也更新数据的服务。

1 个答案:

答案 0 :(得分:0)

您应该使用Service

Android Service Tutorial

<强>的manifest.xml

<service
    android:name="MyService"
    android:icon="@drawable/icon"
    android:label="@string/service_name">
</service> 

<强> MyService.java

public class MyService extends Service {

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    //TODO do something useful
    return Service.START_NOT_STICKY;
}

@Override
public IBinder onBind(Intent intent) {
   //TODO for communication return IBinder implementation
   return null;
}
} 

启动服务

// use this to start and trigger a service
Intent i= new Intent(context, MyService.class);
// potentially add data to the intent
i.putExtra("KEY1", "Value to be used by the service");
context.startService(i);