2013-02-07 60 views
0

我的問題是,我的動態壁紙在linearlayout的設置屏幕中顯示一些廣告(它完美地工作),但是當我將它發送到背景(例如:按主頁按鈕)時,似乎adview未被銷燬,更高的CPU使用率(25-50%)。如果我關閉了我的互聯網連接,或者只是移除廣告顯示代碼,它就可以無需轉動。 我調查了這個問題後,發現(https://developers.google.com/mobile-ads-sdk/docs/admob/fundamentals)我必須銷燬onDestroy上的adview,但我的問題是,這應該發生在我無法訪問adview的活動中。我不知道如何解決這個問題,所以如果你有任何想法,請幫助我。 我的代碼: AdPreference.java:android動態壁紙:如何摧毀adview?

public class AdPreference extends Preference { 
public AdPreference(Context context, AttributeSet attrs, int defStyle) {super (context, attrs, defStyle);} 
public AdPreference(Context context, AttributeSet attrs) {super(context, attrs);} 
public AdPreference(Context context) {super(context);} 
public AdView adView; 
@Override 
protected View onCreateView(ViewGroup parent) { 
    // this will create the linear layout defined in ads_layout.xml 
    View view = super.onCreateView(parent); 

    // the context is a PreferenceActivity 
    Activity activity = (Activity)getContext(); 


    // Create the adView 
    adView = new AdView(activity, AdSize.BANNER, "mybanner"); 
    ((LinearLayout)view).addView(adView); 

    // Initiate a generic request to load it with an ad 
    AdRequest request = new AdRequest(); 
    adView.loadAd(request);     
    return view;  
    } 

和我的活動: 公共類偏好設置擴展PreferenceActivity 實現SharedPreferences.OnSharedPreferenceChangeListener {

@Override 
protected void onCreate(Bundle icicle) { 
super.onCreate(icicle); 
addPreferencesFromResource(R.xml.wallpaper_settings); 

    } 
@Override 
protected void onDestroy() 
{    
getPreferenceManager().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this); 
super.onDestroy(); 
} 

public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) 
{ 
} } 

回答

0

,因爲我不是最好的我可能是錯的這看起來像你可能會缺少一個

@Override 
    public void onDestroy() { 
    if (adView != null) { 
     adView.destroy(); 
    } 
    super.onDestroy(); 
    } 

或類似的東西。我的意思是,我並沒有真正看到你告訴動態壁紙停止廣告請求的任何地方。

就像我說的,我可能是錯的,但那些是我對這件事的看法。