Android:在islatedProcess中获取空值
Posted
技术标签:
【中文标题】Android:在islatedProcess中获取空值【英文标题】:Android: Getting null value in islatedProcess 【发布时间】:2018-10-23 23:50:36 【问题描述】:我有一个运行独立进程的应用程序。
问题是,我从另一个服务中获取了正确的用户 ID,但是当我执行 getUsersNotfs(url) 时,我在 String s onPostExecute: 05-14 11:23:39.806 17705-17705/com.example 上得到空值。糖尿病:offline_notifications I/System.out:空
但是,如果我在没有独立进程的情况下运行它,则字符串是正确的,并且我得到正确的结果 (["RecordID":"1","UserID":"1","RecordDate":"2018-05- 08 00:00:00"])
这是我的代码:
传递用户 ID:
@Override
public int onStartCommand(Intent intent, int flags, int startId)
super.onStartCommand(intent, flags, startId);
uid = intent.getStringExtra("UserID");
startTimer();
return START_STICKY;
public void getUserNotfs(final String urlWebService)
class GetJSON extends AsyncTask<Void, Void, String>
@Override
protected void onPreExecute()
super.onPreExecute();
@Override
protected void onPostExecute(String s)
super.onPostExecute(s);
System.out.println(s);
@Override
protected String doInBackground(Void... voids)
try
URL url = new URL(urlWebService);
System.out.println(url);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
StringBuilder sb = new StringBuilder();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream()));
String json;
while ((json = bufferedReader.readLine()) != null)
sb.append(json + "\n");
return sb.toString().trim();
catch (Exception e)
return null;
GetJSON getJSON = new GetJSON();
getJSON.execute();
谢谢
【问题讨论】:
放个debug看看有没有抓到异常 pastebin.com/n1DE6KQT@MạnhQuyếtNguyễn 【参考方案1】:孤立的进程将有它自己的实例,因此你没有得到价值。
尝试使用一些持久性存储,例如 SQLite,将值保留在那里并从您的隔离进程中访问。
你会明白的。
如https://developer.android.com/guide/topics/manifest/service-element#isolated中所述
您的服务与系统的其余部分隔离,没有自己的权限。这意味着它没有INTERNET
权限。因此无法获取数据。
【讨论】:
但我需要在 1 秒内检查在线数据库 1 以获取值。这些值以 JSON 格式返回。 解决了问题.. 创建了服务但没有隔离!谢谢以上是关于Android:在islatedProcess中获取空值的主要内容,如果未能解决你的问题,请参考以下文章
Android Gradle 插件Gradle 自定义 Plugin 插件 ⑤ ( 自定义插件中获定义方法 | 在插件中创建 Gradle 任务 | 代码示例 )