有没有办法以编程方式在短时间内仅为我的应用程序(不是系统范围!!)切断互联网连接,或者在全球范围内关闭我的应用程序的所有当前正在进行的网络连接?
大卫的评论之一的附加信息:
我的用例如下:我正在使用一个启动网络连接并做一些工作的库,在库中不可能手动停止事务,所以唯一的工作是停止我的应用程序进程建立的所有连接,我不想切断连接系统的范围。
有没有办法以编程方式在短时间内仅为我的应用程序(不是系统范围!!)切断互联网连接,或者在全球范围内关闭我的应用程序的所有当前正在进行的网络连接?
大卫的评论之一的附加信息:
我的用例如下:我正在使用一个启动网络连接并做一些工作的库,在库中不可能手动停止事务,所以唯一的工作是停止我的应用程序进程建立的所有连接,我不想切断连接系统的范围。
您应该编写方法,当检查是否需要执行 Internet 任务(例如AsyncTask)。喜欢:
@Override
protected Void doInBackground(Void... voids) {
if(isOnline()) {
// your logic here
} else {
// other logic
}
}
哪里isOnline方法检查是否需要执行任务。
编辑:
对于已经运行的操作,您需要将方法isOnline放入其他逻辑方法,例如postExecute,如果您设置 isOnline = off,则在postExecute方法上没有任何反应,如果您还像上面那样检查。
对于停止任务,您应该收集任务并调用cancel(...)方法。