错误返回NULL app json_code返回NULL

时间:2016-03-21 22:03:00

标签: java android

我有一个Android应用程序新闻,我从服务器Jons接收数据,直到一切顺利,问题是当我在应用程序中并最小化做其他事情并且当我尝试恢复我离开的地方关闭应用程序附带NULL数据

部分

import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.Color;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;

import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.InterstitialAd;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.List;

public class ActivityDetailStory extends AppCompatActivity {

    int position;
    String str_cid, str_cat_id, str_cat_image, str_cat_name, str_title, str_image, str_desc, str_date;
    TextView news_title, news_date;
    WebView news_desc;
    ImageView img_news, img_fav;
    DatabaseHandler db;
    List<ItemStoryList> arrayOfRingcatItem;
    ItemStoryList objAllBean;
    final Context context = this;
    ProgressBar progressBar;
    LinearLayout content;
    private AdView mAdView;
    private InterstitialAd interstitial;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_detail_story);

        final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        final android.support.v7.app.ActionBar actionBar = getSupportActionBar();
        if (actionBar != null) {
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
            getSupportActionBar().setTitle(Constant.CATEGORY_TITLE);
        }

        //show admob banner ad
        mAdView = (AdView) findViewById(R.id.adView);
        mAdView.loadAd(new AdRequest.Builder().build());
        mAdView.setAdListener(new AdListener() {

            @Override
            public void onAdClosed() {
            }

            @Override
            public void onAdFailedToLoad(int error) {
                mAdView.setVisibility(View.GONE);
            }

            @Override
            public void onAdLeftApplication() {
            }

            @Override
            public void onAdOpened() {
            }

            @Override
            public void onAdLoaded() {
                mAdView.setVisibility(View.VISIBLE);
            }
        });

        content = (LinearLayout) findViewById(R.id.content);
        progressBar = (ProgressBar) findViewById(R.id.progressBar);
        img_fav = (FloatingActionButton) findViewById(R.id.img_fav);
        img_news = (ImageView) findViewById(R.id.image);

        news_title = (TextView) findViewById(R.id.title);
        news_date = (TextView) findViewById(R.id.subtitle);
        news_desc = (WebView) findViewById(R.id.desc);

        db = new DatabaseHandler(ActivityDetailStory.this);

        arrayOfRingcatItem = new ArrayList<ItemStoryList>();
        //imageLoader = new ImageLoader(ActivityDetailStory.this);

        if (JsonUtils.isNetworkAvailable(ActivityDetailStory.this)) {
            new MyTask().execute(Constant.SERVER_URL + "/api.php?nid=" + Constant.NEWS_ITEMID);
            MyApplication.getInstance().trackScreenView("Lendo de cara : " + (Constant.CATEGORY_TITLE));
        }

        else {
            Toast.makeText(getApplicationContext(), "Problema com sua Rede de Internet", Toast.LENGTH_SHORT).show();
        }

    }

    private class MyTask extends AsyncTask<String, Void, String> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();

            progressBar.setVisibility(View.VISIBLE);
        }

        @Override
        protected String doInBackground(String... params) {
            return JsonUtils.getJSONString(params[0]);
        }

        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);

            progressBar.setVisibility(View.GONE);
            content.setVisibility(View.VISIBLE);

            if (null == result || result.length() == 0) {
                Toast.makeText(getApplicationContext(), "Problema com sua Rede de Internet!", Toast.LENGTH_SHORT).show();

            } else {

                try {
                    JSONObject mainJson = new JSONObject(result);
                    JSONArray jsonArray = mainJson.getJSONArray(Constant.CATEGORY_ARRAY_NAME);
                    JSONObject objJson = null;
                    for (int i = 0; i < jsonArray.length(); i++) {
                        objJson = jsonArray.getJSONObject(i);

                        ItemStoryList objItem = new ItemStoryList();

                        objItem.setCId(objJson.getString(Constant.CATEGORY_ITEM_CID));
                        objItem.setCategoryName(objJson.getString(Constant.CATEGORY_ITEM_NAME));
                        objItem.setCategoryImage(objJson.getString(Constant.CATEGORY_ITEM_IMAGE));
                        objItem.setCatId(objJson.getString(Constant.CATEGORY_ITEM_CAT_ID));
                        objItem.setNewsImage(objJson.getString(Constant.CATEGORY_ITEM_NEWSIMAGE));
                        objItem.setNewsHeading(objJson.getString(Constant.CATEGORY_ITEM_NEWSHEADING));
                        objItem.setNewsDescription(objJson.getString(Constant.CATEGORY_ITEM_NEWSDESCRI));
                        objItem.setNewsDate(objJson.getString(Constant.CATEGORY_ITEM_NEWSDATE));

                        arrayOfRingcatItem.add(objItem);

                    }

                } catch (JSONException e) {
                    e.printStackTrace();
                }

                setAdapterToListview();
            }

        }
    }


    public void setAdapterToListview() {

            objAllBean = arrayOfRingcatItem.get(0);
            str_cid = objAllBean.getCId();
            str_cat_name = objAllBean.getCategoryName();
            str_cat_image = objAllBean.getCategoryImage();
            str_cat_id = objAllBean.getCatId();
            str_title = objAllBean.getNewsHeading();
            str_desc = objAllBean.getNewsDescription();
            str_image = objAllBean.getNewsImage();
            str_date = objAllBean.getNewsDate();

            news_title.setText(str_title);
            news_date.setText(str_date);

            news_desc.setBackgroundColor(Color.parseColor("#FFFFFF"));
            news_desc.setFocusableInTouchMode(false);
            news_desc.setFocusable(false);
            news_desc.getSettings().setDefaultTextEncodingName("UTF-8");

            WebSettings webSettings = news_desc.getSettings();
            Resources res = getResources();
            int fontSize = res.getInteger(R.integer.font_size);
            webSettings.setDefaultFontSize(fontSize);

            String mimeType = "text/html; charset=UTF-8";
            String encoding = "utf-8";
            String htmlText = str_desc;

            String text = "<html><head><style type=\"text/css\">@font-face {font-family: MyFont;src: url(\"file:///android_asset/Roboto-Light.ttf\")}body {font-family: MyFont;font-size: medium; color: #525252;}</style></head><body>"
                    + htmlText + "</body></html>";

            news_desc.loadData(text, mimeType, encoding);

            List<Pojo> pojolist = db.getFavRow(str_cat_id);
            if (pojolist.size() == 0) {
                img_fav.setImageResource(R.drawable.ic_bookmark_outline);
            } else {
                if (pojolist.get(0).getCatId().equals(str_cat_id))
                    ;
                {
                    img_fav.setImageResource(R.drawable.ic_bookmark_white);
                }

            }

            img_fav.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub

                    List<Pojo> pojolist = db.getFavRow(str_cat_id);
                    if (pojolist.size() == 0) {

                        db.AddtoFavorite(new Pojo(str_cat_id, str_cid, str_cat_name, str_title, str_image, str_desc, str_date));
                        Toast.makeText(getApplicationContext(), "Leitura Marcada", Toast.LENGTH_SHORT).show();
                        img_fav.setImageResource(R.drawable.ic_bookmark_white);

                        interstitial = new InterstitialAd(ActivityDetailStory.this);
                        interstitial.setAdUnitId(getString(R.string.admob_interstitial_id));
                        AdRequest adRequest = new AdRequest.Builder().build();
                        interstitial.loadAd(adRequest);
                        interstitial.setAdListener(new AdListener() {
                            public void onAdLoaded() {
                                if (interstitial.isLoaded()) {
                                    interstitial.show();
                                }
                            }
                        });
                    } else {
                        if (pojolist.get(0).getCatId().equals(str_cat_id)) {

                            db.RemoveFav(new Pojo(str_cat_id));
                            Toast.makeText(getApplicationContext(), "Leitura desmarcada!", Toast.LENGTH_SHORT).show();
                            img_fav.setImageResource(R.drawable.ic_bookmark_outline);
                        }
                    }
                }
            });


    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_story, menu);
        return super.onCreateOptionsMenu(menu);
    }


    @Override
    public boolean onOptionsItemSelected(MenuItem menuItem) {
        switch (menuItem.getItemId()) {
            case android.R.id.home:
                onBackPressed();
                break;

            case R.id.menu_share:
                Intent sendIntent = new Intent();
                sendIntent.setAction(Intent.ACTION_SEND);
                sendIntent.putExtra(Intent.EXTRA_TEXT, "Estou lendo vários livro com esse app estou adorando, baixe já, Recomendo "+"https://play.google.com/store/apps/details?id="+getPackageName());
                sendIntent.setType("text/plain");
                startActivity(sendIntent);
                break;

            default:
                return super.onOptionsItemSelected(menuItem);
        }
        return true;
    }



    @Override
    protected void onPause() {
       // mAdView.pause();
        super.onPause();
    }

    @Override
    protected void onResume() {
        super.onResume();
        //mAdView.resume();
    }

    @Override
    protected void onDestroy() {
        //mAdView.destroy();
        super.onDestroy();
    }
}

你在日志中得到的是,我越相信它无关。

03-21 18:58:20.032 1342-1342/? E/dalvikvm: Could not find class 'android.app.AppOpsManager', referenced from method com.google.android.gms.common.ou.a
03-21 18:58:20.165 1342-1342/? E/dalvikvm: Could not find class 'android.app.AppOpsManager', referenced from method com.google.android.gms.common.j.a
03-21 18:58:20.404 1342-1342/? E/com.parse.PushService: The Parse push service cannot start because Parse.initialize has not yet been called. If you call Parse.initialize from an Activity's onCreate, that call should instead be in the Application.onCreate. Be sure your Application class is registered in your AndroidManifest.xml with the android:name property of your <application> tag.
03-21 18:58:20.604 1416-1416/? E/dalvikvm: Could not find class 'android.app.AppOpsManager', referenced from method com.google.android.gms.common.GooglePlayServicesUtil.zza
03-21 18:58:20.777 1284-1445/? E/sqlite3_android: CDF_MAX_DIGIT_MATCH = 100
03-21 18:58:20.777 1284-1445/? E/sqlite3_android: CDF_MIN_DIGIT_MATCH = 7
03-21 18:58:21.014 1416-1478/? E/sqlite3_android: CDF_MAX_DIGIT_MATCH = 100
03-21 18:58:21.014 1416-1478/? E/sqlite3_android: CDF_MIN_DIGIT_MATCH = 7

如何不返回NULL

谢谢

0 个答案:

没有答案