存储的数据正在增长,直到应用程序停止工作

时间:2014-12-24 22:27:47

标签: java android admob

我有一个小型Android应用,没有数据库。

我将谷歌AdMob添加到我的应用程序,当我在我的设备上运行应用程序时 - 应用程序存储的数据一直在增长,直到它被卡住,我需要清除数据(Android设置>应用程序>我的应用程序>清除数据)使其再次起作用。我删除了广告并停止播放。

这是正常的吗?我怎么能防止这种情况?

这是我的代码:

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 com.google.android.gms.analytics.GoogleAnalytics;
import com.google.android.gms.analytics.Tracker;

public class MainActivity extends ActionBarActivity {
    private static InterstitialAd interstitial;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        if (savedInstanceState == null) {
            getSupportFragmentManager().beginTransaction()
                .add(R.id.container, new PlaceholderFragment()).commit();
        }
        getOverflowMenu();

        interstitial = new InterstitialAd(this);
    }

    public static class PlaceholderFragment extends Fragment {

        public PlaceholderFragment() {
        }

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment_main,container, false);

            // Create the interstitial.
            interstitial.setAdUnitId("...");
            //Locate the Banner Ad in activity_main.xml
            final AdView adView = (AdView) rootView.findViewById(R.id.adView);
            // Create ad request.
            // Add a test device to show Test Ads
            AdRequest adRequest = new AdRequest.Builder()
             .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
             .addTestDevice("...")
             .build();
            // Load ads into Banner Ads
            adView.loadAd(adRequest);


           // Begin loading your interstitial.
           /* interstitial.loadAd(adRequest);
           // Prepare an Interstitial Ad Listener
           interstitial.setAdListener(new AdListener() {
              public void onAdLoaded() {
                  // Call displayInterstitial() function
                  displayInterstitial();
              }
              public void onAdFailedToLoad(int errorCode){
                 adView.setVisibility(View.GONE);
              }
           });
           */
        ...
        }
    }
}

1 个答案:

答案 0 :(得分:0)

这不正常。我首先删除对非页内广告的静态引用。

我怀疑清除应用程序存储的数据并不能解决您的问题。我怀疑杀死然后重新启动你的应用程序正在解决问题。您需要区分JVM内存(我认为是问题)和缓存磁盘存储。