比较来自JSON的数据

时间:2015-12-02 08:24:49

标签: android json service

我正在使用服务从JSON数组中获取计数值,例如count=3 服务每20秒运行一次并返回一个新的计数值。 现在我们有了新的计数值count=3 我想将新计数值与之前的计数值进行比较 例如:
第一次服务运行:

count=3

第二次服务运行:

count=5

现在如何将count = 5与count = 3进行比较。

第三次服务运行:

count=6

现在将count=6count =5进行比较 等等...... 任何帮助表示赞赏。在此先感谢。

下面是MyService.class

public class GettingUpdate extends Service {
private int first=0;
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    Toast.makeText(this,"Quack Toast",Toast.LENGTH_SHORT).show();
    new ServAsynch().execute();
    return super.onStartCommand(intent, flags, startId);
}

@Nullable
@Override
public IBinder onBind(Intent intent) {
    return null;
}

private class ServAsynch extends AsyncTask {


    @Override
    protected Object doInBackground(Object[] objects) {
        String urlQuack="Someurl";

        try {
            System.out.println("test");
            URL url = new URL(Someurl);
            URLConnection connection = url.openConnection();
            InputStream inputStream = connection.getInputStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
            StringBuilder result = new StringBuilder();
            String line;
            while((line = reader.readLine()) != null){

                result.append(line);

            }
            System.out.println("testRes");
            System.out.println("RESULT:" + result);
            JSONObject jsonObject = new JSONObject(String.valueOf(result));
            JSONObject jo = jsonObject.optJSONObject("metadata");
            String count = jo.optString("count");
            System.out.println("Count: "+count);
            first =Integer.parseInt(count);
            }  catch (Exception e) {
            System.out.println(e);
        }
        return  null;
    }


    @Override
    protected void onPostExecute(Object o) {
        super.onPostExecute(o);


    }
}enter code here

1 个答案:

答案 0 :(得分:1)

如果您想将新计数值与之前的计数值进行比较,只需将其保留在方法之外。

将其保留为静态以保留它。

在你班上,声明:

static int last=-1;

你的方法:

首先声明(未声明)

int first =Integer.parseInt(count);

然后比较

            if (first==last)
                {
                // so domething 
                }
            else
                {
                // do another thing
                }
最后,先保持

            last=first;

如果要保留所有值,请使用Vector,例如:

static vector<Integer> counts=new vector<Integer>;

有帮助吗?