Android 计划用户连接到internet时要执行的脱机任务
在我的应用程序中,我正在进行脱机缓存,我希望在用户连接到internet时安排要执行的脱机任务。我找到了用于此的API,但它仅支持API级别21。对于API小于21的应用程序,是否有其他JobScheduler方法可以帮助我安排用户连接到internet时要执行的任务?制作广播接收器接收连接更改的步骤Android 计划用户连接到internet时要执行的脱机任务,android,caching,android-jobscheduler,Android,Caching,Android Jobscheduler,在我的应用程序中,我正在进行脱机缓存,我希望在用户连接到internet时安排要执行的脱机任务。我找到了用于此的API,但它仅支持API级别21。对于API小于21的应用程序,是否有其他JobScheduler方法可以帮助我安排用户连接到internet时要执行的任务?制作广播接收器接收连接更改的步骤 public class NetworkChangeReceiver extends BroadcastReceiver { @Override public void onRe
public class NetworkChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, final Intent intent) {
final ConnectivityManager connMgr = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
final android.net.NetworkInfo wifi = connMgr
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
final android.net.NetworkInfo mobile = connMgr
.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (wifi.isAvailable() || mobile.isAvailable()) {
// Do something
Log.d("Netowk Available ", "Flag No 1");
}
}
}
并在清单中添加权限
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
有几种方法可以在棒棒糖前运行“作业” 如前所述,您可以使用JobSchedulerCompat库,但该库与默认的棒棒糖API相比有很大的不同: 在棒棒糖上,所有应用程序的作业都会一次进行批处理和调度。但是,库无法访问其他应用程序数据,因此无法使用库合并来自两个不同应用程序的作业 您可能希望尝试的另一个选项是AlarmManager API。此API可用于调度作业,但一个区别是AlarmManager除了运行作业的计时之外没有其他约束 由于KitKat,AlarmManager API在未使用“精确”方法调度作业时也会对作业进行批处理。在KitKat作业未成批之前 如果您的目标是同步数据,那么同步适配器API可能会很有用: 参考文献:
Android Lollipop的作业调度器到api 10+的一个后端口,您可以使用,它符合您描述的需要,是一个工作示例。它在内部使用JobScheduler,高于21,低于21,它使用了一些Google专有技术U不理解我的问题..我知道如何检查连接更改..我想知道API小于21时JobScheduler的替代方法..替代方法是自己制作API,首先,您需要获得连接更改,然后在接收广播时执行您的工作当前我正在使用的是一个处理程序,该处理程序每秒检查网络连接是否存在,并且无论何时网络连接存在,它都会执行任务..示例发布注释..您的答案很好..我使用广播接收机。。很高兴你能帮我做这件事。。目前,我所做的允许用户进行脱机操作的方法是使用一个处理程序,该处理程序每秒检查网络连接是否存在,并且每当网络连接存在时,它都会执行任务。例如发布评论。假设用户脱机时,他试图发布评论,则该评论将在internet上发布连接在用户的设备上。但对于tht,我必须每秒使用处理程序检查网络连接是否存在。如果您能帮助我,我将非常高兴。。