久しぶりのandroidな記事です。
*これは2014 /12/08 時点でのgoogle play servicesを利用したadmobのものです。
*追記しました。コードが変わってます。

Admob使ってる人は既出かもしれません。
Admobのバナー広告なんかでadViewを使ったりすると思いますが
規定通りに終了時にadView.destoryとかしても動き続けます。

正確には運がよければ止まる時もある?って感じです。
気づいたのはアプリの電池消費を確認していた時に自分のアプリの消費が高くなっていたので気づきました。。

電池消費系の監視アプリはほとんどはcpuで見てるので、ん?っと思いcpuを監視してみるとすごい勢いで増えている。。

んで、
>いったんプロセスをきる。 → ちゃんと切れる
>ブロードキャストなんかでサービスを起動させる → 変動なし。
>アプリ立ち上げてすぐ閉じる → めっちゃ増えてく
>サービスは動かなくしてアプリ立ち上げてすぐ閉じる → めっちゃ増えてく
>広告なし版は問題ないみたいなので広告消す → 変動なし。
>他社のアプリで同じようにadmobを使用しているものを立ち上げてすぐ閉じる → そのアプリめっちゃ増えてく

あーadmobだーと気づきました(・ω・)
あとデバッグ時のインストールだとなぜか終了した時はちゃんと止まる・・・
一度閉じたあと開き直して確認すると止まらない。。

*ちなみにある広告会社さんに聞いたところgoogle広告は横に透明のgマークがつくらしいですよ。

これずっと動いてるのは多分jsとかそこらなのかな~なんかcpuの膨れ上がりの割りには電池の減りは少ないので気づきづらい。
でもまじめに対処しとかないとcpuでの電池消費監視アプリとかを見たユーザーさんにつっこまれる元になるのでほんと気をつけないといけませんね。。。

んじゃ、実際に対策を・・・
ということでadView広告の中身をみる。
すると広告部分の中身はWebViewだったりするんですがここでやってる停止処理がちゃんと動いてないみたい。
なのでadViewの中のViewGroupを参照して見つかったWebViewに対して直接止めたり動かしたりの処理をしてあげればいいようです。
メンドクサスギル。。

んで対応する際
//LinearLayoutに直接addする場合
//起動処理--------------------
//onCreateの時にでも
private void createAdView() {
if (adView == null) {
//入れるレイアウト
LinearLayout ad = (LinearLayout) findViewById(R.id.content_bottom_panel);
     
//adViewのLayoutParams
LinearLayout.LayoutParams adsParams = new LinearLayout.LayoutParams(
        LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
        adsParams.gravity = Gravity.CENTER;
        
      //adViewのコンフィグ
adView = new AdView(getApplicationContext());
adView.setAdSize(AdSize.BANNER);
adView.setAdUnitId("IDいれてね");
final AdListener listener = new AdListener() {
@Override
public void onAdLoaded() {
//ロードしたら表示
adView.setVisibility(View.VISIBLE);
super.onAdLoaded();
}
};
adView.setAdListener(listener);
  
//ロードまで非表示
adView.setVisibility(View.GONE);

//adViewをadd
ad.addView(adView, adsParams);

AdRequest adRequest = new AdRequest.Builder()
// .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
// .addTestDevice("端末のコード")
.build();

adView.loadAd(adRequest);

//WebViewをresumeTimersで動くように(削除 onResume内で) 
//resumeWebView(adView);
}
}

void resumeWebView(ViewGroup v) {
for (int i = 0; i < v.getChildCount(); i++) {
View child = v.getChildAt(i);
if (child instanceof WebView) {
((WebView) child).resumeTimers();
}

       try{
   resumeWebView((ViewGroup) child);
        } catch (Exception e) {
e.printStackTrace();
}
}
}
//削除処理----------------
private void destroyAdView() {
if (adView != null) {
//adViewをレイアウトから取り除く
    
LinearLayout ad  = (LinearLayout) findViewById(R.id.content_bottom_panel);
if(ad!=null){
ad.removeView(adView);
    
     /*
全部取り除くなら以下でもいい
ad.removeAllViews();
     */
}

//WebViewをpauseTimersで止める(削除 onPause内で)
//pauseWebView(adView);

                //削除時に最初と同じ状態にWebViewを戻す (追記) 
                //これをしないと回転したり最近のタスクから戻ったりで再ロードがされない
                resumeWebView(adView);

                //adViewを削除:規定通りの作法
adView.destroy();
adView=null;
}
}

void pauseWebView(ViewGroup v) {
for (int i = 0; i < v.getChildCount(); i++) {
View child = v.getChildAt(i);
if (child instanceof WebView) {
((WebView) child).pauseTimers();
}
try {
pauseWebView((ViewGroup) child);
} catch (Exception e) {
e.printStackTrace();
}
}
}

@Override
public void onResume() {
if (adView != null) {
adView.resume();
resumeWebView(adView);
}
super.onResume();
}

@Override
public void onPause() {
if (adView != null) {
adView.pause();
pauseWebView(adView);
}
super.onPause();
}
@Override
public void onDestroy() {
destroyAdView();
super.onDestroy();




*12/08 コード変更

上みたいに色々書いてましたがもっとシンプルに以下の形で。
@Override
public void onResume() {
if (adView != null) {
try{
WebView webView = new WebView(this);
        webView.resumeTimers();
}catch(Exception e){}
adView.resume();
}
super.onResume();
}

@Override
public void onPause() {
if (adView != null) {
adView.pause();
try{
WebView webView = new WebView(this);
        webView.pauseTimers();
}catch(Exception e){}
}
super.onPause();

}
んな感じでいけると思います。

*12/08 記事の追記と変更
以前のコードだと最近のAdViewで止まらないことが確認しました。あと回転時も再起しない。
んで、そもそもWebViewの仕組みを見直したらシンプルにいけることに気づきましたよ。。。

pauseTimers はアプリ内全てのWebViewを止めるのでアプリ自体がweb View使ってる場合はちょっと気をつけてくださいませ。

なお、これは2014 /12/08 時点でのgoogle play servicesを利用したadmobについての対策です。半年以上前からこの状態は続いてますんでどうなんでしょう。
ちなみに開発者フォーラムを覗くと同じ内容のフォーラムがたくさんあります。。
[adveiw cpu high]なんかで検索するとたくさんでると思います。

んで向こう側は明確な対策法がまだできないといっており、上記のようなWebViewに
pauseTimers()とresumeTimers()をやってやるのがいまのところ良い方法かもといってますです。

多分、4.2以降はがんがん端末が使わないの消してくからこの問題にあまり気がつかないかもしれません。ちなみに私は4.04と4.4で膨れ上がるのを確認しとります。
結構この状態になってるアプリが追記した現時点で多いので対策しておくのもいいかもです。