2016-08-17 31 views
0

我試圖在應用程序購買中實現Android刪除廣告功能。在我的課,我把private boolean isAdsDisabled;onCreate下,我把在App Purchase中使用布爾值刪除廣告

if (isAdsDisabled) { 
      AdView adView = (AdView) this.findViewById(R.id.adView); 
      adView.setVisibility(View.GONE); 
     } else { 
      AdView adView = (AdView) this.findViewById(R.id.adView); 
      AdRequest adRequest = new AdRequest.Builder().build(); 
      adView.loadAd(adRequest); 
     } 

這是我OnIabPurchaseFinishedListener

IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener 
      = new IabHelper.OnIabPurchaseFinishedListener() { 
     public void onIabPurchaseFinished(IabResult result, 
              Purchase purchase) 
     { 
      if (result.isFailure()) { 
       // Handle error 
       return; 
      } 
      else if (purchase.getSku().equals(ITEM_SKU)) { 
       removeAds(); 
      } 

     } 
    }; 

removeAds()

private void removeAds() { 
     AdView adView = (AdView) this.findViewById(R.id.adView); 
     adView.setVisibility(View.GONE); 
     isAdsDisabled = true; 
    } 

成功購買後,我設法隱藏廣告。但是,重新啓動我的應用程序後,問題重新出現。看起來像它不能保存布爾​​。如何解決這個問題?

+0

在數據庫或服務器,你應該永久保存在應用程序內購買價值再往使用,因爲布爾是temporary.It不能訪問後破壞活動 – Saveen

+0

,但有一個人設法使用布爾值: http://www.tutorialsface.com/2016/05/implementing-remove-ads-in-app-purchases-in-android-tutorial-example/ – user2872856

+0

但只是想你從哪裏得到破壞活動後的布爾值。這不是保存在任何地方 – Saveen

回答

0

SharedPreferences解決了這個問題。

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
     boolean isAdsDisabled = settings.getBoolean("isAdsDisabled", false); 

     if (isAdsDisabled) { 
      AdView adView = (AdView) this.findViewById(R.id.adView); 
      adView.setVisibility(View.GONE); 
     } else { 
      AdView adView = (AdView) this.findViewById(R.id.adView); 
      AdRequest adRequest = new AdRequest.Builder().build(); 
      adView.loadAd(adRequest); 
     } 

而且我removeAds()

private void removeAds() { 
     AdView adView = (AdView) this.findViewById(R.id.adView); 
     adView.setVisibility(View.GONE); 
     SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
     SharedPreferences.Editor editor = settings.edit(); 
     editor.putBoolean("isAdsDisabled", true); 
     editor.commit(); 
    }