我的问题是我的动态壁纸在设置屏幕中以线性布局显示了一些广告(它完美地运行),但是当我将其发送到后台时(例如:按主页按钮),似乎广告视图没有被破坏,导致更高的CPU使用率(25-50%)。如果我关闭我的互联网连接或只删除广告显示代码,它无需旋转。 在我调查了这个问题之后,我发现(https://developers.google.com/mobile-ads-sdk/docs/admob/fundamentals)我必须在onDestroy上销毁广告,但我的问题是这应该发生在我无法访问广告的活动中。而且我不知道如何解决它所以如果您有任何想法请帮助我。 我的代码: AdPreference.java:
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;
}
和我的活动: 公共类Prefs扩展了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 :(得分:0)
我可能是错的,因为我不是最好的,但看起来你可能错过了
@Override
public void onDestroy() {
if (adView != null) {
adView.destroy();
}
super.onDestroy();
}
或类似的东西。我的意思是,我不会在任何地方看到您告诉动态壁纸停止广告请求。
像我说的那样,我可能是错的,但那些是我对手头事情的信念。