2012-07-06 3 views
1

AsyncTask를 사용하여 admob 광고를로드 할 수 있습니까?Admob이 AsyncTask와 함께 작동하지 않습니다.

나는 그것을 시도했지만 내가 런타임에 경고를 많이 얻고 광고

나는 새 AdView가 인스턴스를 내 방법이

과 같은

07-06 09:57:31.170: W/webview(1113): java.lang.Throwable: Warning: A WebView method was called on thread 'AsyncTask #1'. All WebView methods must be called on the UI thread. Future versions of WebView may not support use on other threads. 

되어 생성 경고의

하나를로드되지 않습니다

@Override 
protected AdView doInBackground(Activity... activityParam) 
{ 
     Looper.prepare();    
     activity = activityParam[0]; 
     // Create the adView 
     AdView adView = new AdView(activity, AdSize.BANNER, "xxxxxxxxxxxxx");     
     return adView;   
} 

이 전혀 비 UI 스레드에서 호출 할 필요가있는 경우 알려 주시기 바랍니다, 유일한 이유는 내가 UI 차단을 방지하기 위해 그 일을하고 ..

편집. 내가 내 활동의 인터페이스를 차단하지 않으 , 몇 초 동안 차단하는 것 때문에 내가 백그라운드에서 광고를로드하려고

, 내가 제대로 내 문제를 표현하지 않았다가 될 수 있습니다.

은 그 하나는 AsyncTask를을 사용해야 차단 UI를 방지하는 것이 좋습니다이 게시물 How to avoid Admob blocking the UI thread을 읽을

그래서 나는 배경에 광고를로드하는 대체 있는지 알고 싶어 ..?를

+0

샘플을 따라 가서 UI 스레드에서 adview를 추가하고 AsyncTask에 넣지 않을 것입니다. –

+0

@MorrisonChang 처음에는 그랬지만 그 다음에는 약간의 지연이있는 것을 보았습니다. 제 질문에 언급 한 게시물은 AsyncTask – Ahmed

답변

1

UI 스레드에서 수행해야하는 AdView를 만드는 데 필요한 시간과 광고 서버와 통신하고 광고를 전달하는 데 걸리는 시간을 구분합니다. '블록'또는 '지연'은 광고를 표시하려고하는 광고 SDK의 스레드 일 것입니다. 인터넷을 통해이 작업을 수행해야하므로 광고가 표시되는 데 시간이 걸립니다. 광고를 가져 오는 동안 AdMob이 UI 스레드를 차단하지 않을 것이라고 생각하지만 화면에 표시된 모든 UI 위젯 항목 (버튼, 텍스트 필드, 이미지 등)을 볼 때까지 눈에 띄는 지연이 있습니다. 귀하의 활동 및 광고가 언제 나타날지 알려줍니다.

3

UI 스레드가 아닌 doInBackground 메서드에서보기를 사용하는 것이 문제입니다. onPostExecute (doInBackground 다음에 호출 됨) 또는 onPreExecute (doInBackground 전에 호출 됨) 메서드에서 AsyncTaskUI 스레드로 호출되는 방식으로보기 만하면됩니다.

0

코드가 UI 스레드 내에서 처리되는 경우 Admob 배너 및 삽입 광고가 표시됩니다.

성능 요구 사항에 따라 다음 게시물을 확인해보십시오. 당신이 스레드를 사용하여 30초 반복 작업에서 전면 광고를 사용하는 방법에 대한 자습서를 찾을 수 있습니다 Android basics: running code in the UI thread

를 다음 링크에서 : 그것은 사용 AsyncTask를 직접 자신의 스레드를 만드는 것보다 덜 효율적 이유의 아주 좋은 요약을 포함 http://www.6020peaks.com/2015/01/how-to-use-admob-interstitials-from-a-non-ui-thread-in-android/

관련 문제