在后台android中每5分钟运行一次截击请求

Ser*_*ier 3 android background alarmmanager android-volley

我使用Volley库连接我的应用程序中的服务器.现在,我还必须每5分钟在后台发送请求,当应用程序未运行时(由用户杀死).我该怎么办?有了后台服务AlarmManager(谷歌表示它不是网络运营的好选择)或其他什么?

或者SyncAdapter可能会有用吗?

Ars*_*mam 5

您可以在服务类中使用带有scheduleAtFixedRate的TimerTask 来实现这一点,这里是Service类的一个示例,您可以使用它

public class ScheduledService extends Service 
{

private Timer timer = new Timer();


@Override
public IBinder onBind(Intent intent) 
{
    return null;
}

@Override
public void onCreate() 
{
    super.onCreate();
    timer.scheduleAtFixedRate(new TimerTask() {
        @Override
        public void run() {
            sendRequestToServer();   //Your code here
        }
    }, 0, 5*60*1000);//5 Minutes
}

@Override
public void onDestroy() 
{
    super.onDestroy();
}

}
Run Code Online (Sandbox Code Playgroud)

您可以使用sendRequestToServer方法连接服务器.这是该服务的明确声明.

<service android:name=".ScheduledService" android:icon="@drawable/icon" android:label="@string/app_name" android:enabled="true"/>
Run Code Online (Sandbox Code Playgroud)

要从MainActivity启动服务,

// use this to start and trigger a service
Intent i= new Intent(context, ScheduledService.class);
context.startService(i);
Run Code Online (Sandbox Code Playgroud)