Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何依次调用两个方法?_Android_Json - Fatal编程技术网

Android 如何依次调用两个方法?

Android 如何依次调用两个方法?,android,json,Android,Json,我正在构建一个简单的Android应用程序。我想解析JSON。我用按钮使一切正常。但我不想用按钮来打电话。首先需要从url获取JSON,然后解析它。我有函数getJson和parseJSON。首先,我希望调用getJSON,然后在5秒钟后解析JSON。这是我的密码: Runnable[] methods = new Runnable[]{ new Runnable() { @Override public v

我正在构建一个简单的Android应用程序。我想解析JSON。我用按钮使一切正常。但我不想用按钮来打电话。首先需要从url获取JSON,然后解析它。我有函数getJson和parseJSON。首先,我希望调用getJSON,然后在5秒钟后解析JSON。这是我的密码:

Runnable[] methods = new Runnable[]{
            new Runnable() {
                @Override
                public void run() {
                    Toast.makeText(SheduleActivity.this, "This is gettin JSON", Toast.LENGTH_LONG).show();
                    getJSON();

                }
            },
            new Runnable() {
                @Override
                public void run() {
                    try {
                        Thread.sleep(5000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            },
            new Runnable() {
                @Override
                public void run() {
                    Toast.makeText(SheduleActivity.this, "This is Parsing JSON", Toast.LENGTH_LONG).show();
                    parseJSON();


                }
            }

    };

    for(Runnable r : methods)
        //r.run();
       service.submit(r);
   service.shutdown();
    while (!service.isTerminated()) {}
    Toast.makeText(SheduleActivity.this,"Finished all threads", Toast.LENGTH_LONG).show();

每次我运行我的应用程序时,只会调用和停止getJSON方法。有什么建议吗?

我认为您需要使用AsyncTask。将getJson放在doInBackground块中,将parseJSON放在onPostExecute块中。希望这有帮助

Android不建议使用sleep5000延迟。使用handler执行此操作。请参阅Handler的示例

例如,在您的代码中

Handler handler = new Handler( /* --- */ );
handler.postDelayed(methods[i], 5000);

另外,为了从web获取json,建议使用Asynctask使UI具有响应性。Asynctask的最佳教程是。

请将日志放在这里