Как я могу исправить мою проблему класса обслуживания с библиотекой Vollley? - PullRequest
0 голосов
/ 10 февраля 2019

Я хочу получить данные с моего сайта WordPress.Я использую rest-api2 в WordPress.И я использую библиотеку залпа для получения данных.Мои данные - json, и я использую библиотеку gson для анализа данных.Я толкаю к ​​списку объектов мои данные.Мой код работает во фрагменте или в Activity, и я хочу использовать этот код в классе обслуживания, но он не работает.

MainActivity:

startService(new Intent(context,VeriServis.class));//in onCreate()

Это мой класс обслуживания:

public class VeriServis extends Service {
    Context context = this;
    Gson gson;
    List<Object> list;
    Map<String,Object> mapPost;
    Map<String,Object> mapTitle;
    Map<String,Object> mapContent;
    List<Object> alList = new ArrayList<>();
    List<Data> dataList;
    String postTitle[];
    String postImg[];
    String postContent;
    String postDate;
    int postID;

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

    @Override
    public void onCreate() {
        super.onCreate();
        pullAndPushData();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
    }
    public void pullAndPushData(){
        String url = "https://haberyaziyorum.com/wp/json/wp/v2/posts?categories=17&page=1";
        System.out.println(url);
        StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
            @Override
            public void onResponse(String s) {
                gson = new Gson();
                list = (List)gson.fromJson(s, List.class);
                alList.addAll(list);
                postTitle = new String[alList.size()];
                postImg = new String[alList.size()];
                dataList = new ArrayList<>();
                for(int i=0;i<alList.size();i++){
                    mapPost = (Map<String, Object>)alList.get(i);
                    mapTitle  = (Map<String, Object>)mapPost.get("title");
                    mapContent  = (Map<String, Object>)mapPost.get("content");
                    postTitle[i] = (String)mapTitle.get("rendered");
                    postImg[i] = (String)mapPost.get("jetpack_featured_media_url");
                    postID = ((Double)mapPost.get("id")).intValue();
                    postDate = mapPost.get("date").toString();
                    postContent = mapContent.get("rendered").toString();
                    Data d = new Data(17,postID,postTitle[i],postContent,postDate,postImg[i]);
                    System.out.println(postID+"||"+postTitle[i]+"||"+postContent+"||"+postDate+"||"+postImg[i]);
                    dataList.add(d);

                }

            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {

            }
        });
        RequestQueue rQueue = Volley.newRequestQueue(context);
        rQueue.add(request);
    }
}

Как я могу это исправить?

...