【问题标题】:Android: Getting null value in islatedProcessAndroid:在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();
}

谢谢

【问题讨论】:

标签: java android json http service


【解决方案1】:

孤立的进程将有它自己的实例,因此你没有得到价值。

尝试使用一些持久性存储,例如 SQLite,将值保留在那里并从您的隔离进程中访问。

你会明白的。

https://developer.android.com/guide/topics/manifest/service-element#isolated中所述

您的服务与系统的其余部分隔离,没有自己的权限。这意味着它没有INTERNET 权限。因此无法获取数据。

【讨论】:

  • 但我需要在 1 秒内检查在线数据库 1 以获取值。这些值以 JSON 格式返回。
  • 解决了问题.. 创建了服务但没有隔离!谢谢
猜你喜欢
  • 1970-01-01
  • 2013-03-10
  • 2017-02-24
  • 2014-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-10
  • 2012-02-15
相关资源
最近更新 更多