JSON 解析后小部件未更新

2024-04-04

我有以下代码:

@Override
    public void onReceive(Context context, Intent intent) {
        super.onReceive(context, intent);

        if (CLOCK_WIDGET_UPDATE.equals(intent.getAction())) {
            Toast.makeText(context, "onReceiver()", Toast.LENGTH_LONG).show();
        }

        new GetJSON().execute(null, null, null);
    }
    public class GetJSON extends AsyncTask<Void, Void, Void> {
         @Override
         protected Void doInBackground(Void... params) { //Running in background
             try {
                 httpclient = new DefaultHttpClient(new BasicHttpParams());
                 HttpPost httppost = new HttpPost("http://pagesbyz.com/hadith.json");
                 // Depends on your web service
                 httppost.setHeader("Content-type", "application/json");
                HttpResponse response = httpclient.execute(httppost);           
                HttpEntity entity = response.getEntity();

                inputStream = entity.getContent();
                // json is UTF-8 by default
                BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"), 8);
                sb = new StringBuilder();

                String line = null;
                while ((line = reader.readLine()) != null)
                {
                    sb.append(line + "\n");
                }
                result = sb.toString();

            } catch (Exception e) {
                Log.i("TEST", e.toString());
                // Oops
            }
            finally {
                try{if(inputStream != null)inputStream.close();}catch(Exception squish){}
            }
            return null;
         }

         @Override
         protected  void onPreExecute() { //Activity is on progress
         }

         @Override
        protected void onPostExecute(Void v) {
             try {
                 jsonArray = new JSONArray(result);
                 date = new String[jsonArray.length()];
                 quote = new String[jsonArray.length()];
                 by = new String[jsonArray.length()];
                    for (int i = 0; i < jsonArray.length(); i++) {
                        JSONObject jsonObj = (JSONObject) jsonArray.get(i);
                        date[i] = jsonObj.getString("Date");
                        quote[i] = jsonObj.getString("Quote");
                        by[i] = jsonObj.getString("By");
                    } // End the for loop
                    views.setTextViewText(R.id.tvToday, date[0]);
                    views.setTextViewText(R.id.tvParkStatus, quote[0]);
             }
             catch (JSONException e) {
                 e.printStackTrace();
             }
        }
    }

我希望使用从 JSON 文件收到的信息来更新小部件。我看到该小部件,但没有显示任何信息。

我的 JSON 看起来像:

[
    {   
        "Date" : "11182013",
        "Quote" : "Today Is Monday",
        "By" : "SiKni8"
    },
    {   
        "Date" : "11192013",
        "Quote" : "Today Is Tuesday",
        "By" : "SiKni8"
    }
]

将您的 AsynkTast 更改为:

public class GetJSON extends AsyncTask<Void, Void, String> {

     @Override
     protected Void doInBackground(Void... params) { //Running in background

     // ...
     // do all your stuff as it is and change return to this :

     return result;
     }

    @Override
    protected void onPostExecute(String result) { 
    // left other of your code as it is.
    }
}

并将执行更改为new GetJSON().execute();

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSON 解析后小部件未更新 的相关文章

随机推荐

  • 迭代多个数组的最佳方法?

    在 Ruby 中迭代多个数组的最佳 美观且高效 方法是什么 假设我们有一个数组 a x y z b a b c 我想要这个 x a y b z c Thanks 另一种方法是使用each with index 快速基准测试表明 这比使用 z
  • PHP SREG 中的 JanRain OpenID?

    我使用我发现的名为 open id 选择器的修改后的登录设置了演示 登录工作正常并且身份 url 返回 但我要求的 SREG 数据从未填充 必需或可选 我正在使用 Gmail 帐户登录我的页面 这是我编辑的 try auth php 中的代
  • 对 SolrConfig.xml 文件的更新未得到反映

    我在 SolrConfig xml 文件中添加了一个新的请求处理程序 但是每当我尝试使用新的处理程序时 我都会收到带有 未知处理程序 错误的 404 修改SolrConfig xml文件时是否还需要修改其他文件 Thanks 您需要重新启动
  • DatagramSocket.send 线程安全吗?

    我打算使用一个实例DatagramSocket并称其为send http docs oracle com javase 7 docs api java net DatagramSocket html send 28java net Data
  • 绘制 3D 线,matlab

    我的问题非常标准 但找不到解决方案 我有点 x y z 并想绘制最佳拟合线 我正在使用下面给出的函数 和 Thanx Smith LS3DLINE M Least squares line in 3 dimensions Version 1
  • 基于 Symfony 2 的项目的安全性和登录

    我正在开发一个基于 Symfony 2 PHP 框架的 Web 应用程序 它有一个供注册用户使用的登录页面 我想为每个登录系统的用户执行一些自定义逻辑 基本上 我想在任何用户登录系统时进行记录 但我不想在主页的控制器上执行此操作 因为每次用
  • Mac OS X 10.6.7 Java 路径当前 JDK 令人困惑

    我无法理解 Mac OSX 上的多个 java 版本 实际路径与链接 通常在 Windows 中 如果我的机器上安装了多个版本 我可以选择我想要的版本的路径并使用它 但在 MAC OS X 中 我知道有一个叫做链接的东西被指向 Curren
  • .net 4.6框架已就地升级那么.net框架4.5在vs2015中如何工作?

    net 4 6框架已就地升级那么 net框架4 5在vs2015中如何工作 我只看到一个文件夹 v4 0 30319 dll 是如何存储的以及在哪里 NET Framework 4 5 是 4 0 的就地升级 4 5 1 是 4 5 的替代
  • 我可以在 Citrus 静态响应适配器负载中使用 Citrus 变量吗?

    我正在使用静态响应端点适配器返回从资源文件获取的模拟服务响应 private void setAdapterResponse StaticResponseEndpointAdapter adapter String response thr
  • 在 Python、MATLAB 等中使用 eval [重复]

    这个问题在这里已经有答案了 我确实知道不应该使用eval 出于所有显而易见的原因 性能 可维护性等 我的问题更多的是 它有合法用途吗 人们应该使用它而不是以另一种方式实现代码 由于它是用多种语言实现的 并且可能导致糟糕的编程风格 我认为它仍
  • 如何在 ggplot2 图例中使用下标 [R]

    我可以在 ggplot2 图例中使用下标吗 我懂了这个问题 https stackoverflow com questions 5293715 how to use greek symbols in ggplot2关于传说和其他地方的希腊字
  • wifi getLinkSpeed() 始终返回一个值

    我正在开发一个显示互联网速度的应用程序 喜欢 https play google com store apps details id netspeed pt https play google com store apps details
  • 同步获取 Android 上最后一个已知位置

    在 Android 上使用 LocationClient v2 API 获取最后已知位置的 正确 方法是什么 同步 manner UPDATE 这是我想出的最好的方法 它不是同步的 但它克服了处理问题的负担connect and onCon
  • 如何检查脏标志

    我想知道如果用户选择从页面导航 检查页面是否脏的最佳方法是什么 例如 有一个注册表单 用户输入他的所有信息 然后不小心点击了一个链接来进行导航 我在网上发现了这个 如果有人对任何表单输入值进行更改 它会检查页面是否脏
  • 将新的 GUID 插入 Visual Studio 2012

    是否可以创建代码片段或类似的内容来自动生成 GUID 并将其插入到 Visual Studio 2012 中的文本编辑器中 我经常需要生成新的 GUID 例如 WiX 安装程序 以及我们自己的内部框架 我曾经使用宏来执行这项工作 创建一个新
  • 在python中生成任意长度的数字升序列表

    我可以调用一个返回升序数字列表的函数吗 IE function 10 会回来 0 1 2 3 4 5 6 7 8 9 你要range https docs python org 3 library functions html func r
  • EF6(代码优先)、MVC、Unity 和没有存储库的服务层

    我的应用程序使用 SQL Server 2012 EF6 MVC 和 Web API 它还使用存储库和各种文件 例如 DatabaseFactory cs Disposable cs IDatabaseFactory cs IReposit
  • WPF 显示/隐藏带有触发器的控件

    我是 WPF 新手 我尝试创建 xaml 逻辑来根据 ViewModel 上的 AllowMiscTitle 值显示 隐藏控件 xaml 由两个字段组成 一个标准图块的组合框 先生 女士 其他 当选择 其他 时 我希望显示文本框 我创建了以
  • 如何从 Ubuntu 连接到 Windows SQL Server

    在过去的两天里 我一直在尝试连接到远程 Windows SQL 服务器 但没有明显成功 我正在尝试使用 python 连接pyodbc包裹 我尝试关注所有与此相关的博客文章 但运气不佳 我首先关注了that http onefinepub
  • JSON 解析后小部件未更新

    我有以下代码 Override public void onReceive Context context Intent intent super onReceive context intent if CLOCK WIDGET UPDAT