博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android l job scheduler api,Android JobScheduler API
阅读量:6280 次
发布时间:2019-06-22

本文共 1957 字,大约阅读时间需要 6 分钟。

I am sending a request to a server using Volley in a JobService. My question is, since the service runs on the main thread, should I create a seperate thread inside the service and call my Volley request there, or simple call the volley request? Here is some of my code.

public class JobService extends android.app.job.JobService {

static int count = 0;

@Override

public boolean onStartJob(final JobParameters jobParameters) {

Log.d("Job Service", "onStartJob " + count);

final SharedPreferences prefs = getSharedPreferences(LOGIN_PREFS, MODE_PRIVATE);

RequestQueue queue = Volley.newRequestQueue(this);

StringRequest request = new StringRequest(Request.Method.POST, URL, new Response.Listener() {

@Override

public void onResponse(String response) {

Log.d("Job Service", "onResponse");

try {

writeFileToCache(response);

jobFinished(jobParameters, true);

} catch (Exception e) {

e.printStackTrace();

jobFinished(jobParameters, true);

}

}

}, new Response.ErrorListener() {

@Override

public void onErrorResponse(VolleyError error) {

Log.d("Volley error job", error.toString());

jobFinished(jobParameters, true);

}

}) {

@Override

protected Map getParams() throws AuthFailureError {

HashMap params = new HashMap<>();

params.put("regno", prefs.getString(REG_NO, ""));

params.put("bdate", prefs.getString(DATE_OF_BIRTH, ""));

return params;

}

};

request.setRetryPolicy(new DefaultRetryPolicy(12000, 0, 0f));

queue.add(request);

return true;

}

private void writeFileToCache(String response) throws IOException {

if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED) {

return;

}

File file = new File(getExternalCacheDir() + CACHE_FILE);

FileOutputStream fout = new FileOutputStream(file);

Log.d("Writing to cache job", response);

fout.write(response.getBytes());

fout.close();

}

@Override

public boolean onStopJob(JobParameters jobParameters) {

Log.d("Job Service", "onStopJob");

return false;

}

转载地址:http://dunva.baihongyu.com/

你可能感兴趣的文章
IOS项目之弹出动画终结篇
查看>>
iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist)
查看>>
OSS移动开发实战2 (30分钟快速搭建移动应用上传回调服务)
查看>>
Swift语言学习No.2: 二维数组
查看>>
SQL性能优化概要
查看>>
Mysql主从同步失败
查看>>
Linux几个常用的小命令-我最喜欢chmod
查看>>
金蝶随手记团队分享:还在用JSON? Protobuf让数据传输更省更快(实战篇)
查看>>
电商外包众生相:从淘宝吃饭到海外运营
查看>>
模块化编程之require.js
查看>>
php字符函数的学习
查看>>
Android进阶之AIDL的使用详解
查看>>
VMware 上网的三种方式
查看>>
backtrack5使用notepad++
查看>>
JSON-lib框架,转换JSON、XML
查看>>
UITableView常见问题
查看>>
优化Linux 的内核参数来提高服务器并发处理能力
查看>>
同步与异步、阻塞与非阻塞
查看>>
Python操作mysql数据库
查看>>
Tomcat中JVM内存溢出及合理配置
查看>>