2011-03-26 4 views
1

좋아요, 이전에 비슷한 question을 물어 봤지만 대답이 있었지만 너무 일반적인 질문이었습니다.admob의 문제점

이제 많은 활동이있는 앱을 만들었습니다. 각 액티비티에는 해당 레이아웃 파일에 포함 된 동일한 Adob ​​(AdView) 레이아웃이 있습니다. 이제 첫 번째 화면의 광고로드가 끝난 후 한 활동에서 다른 활동으로 이동할 때 문제가 발생합니다. 두 번째 활동은 다른 광고 가져 오기주기가 계속 발생할 때까지 대기합니다. 즉 다시 광고 요청을 보내고 새 광고를 표시합니다. ]. 내가 원하는 것은 내 앱이 모든 활동에서 동일한 광고 인스턴스를 표시하는 것입니다. [동일한 인스턴스의 의미 : 광고를 새로 고침해야하는 시간 간격이 있으므로 시간 제한이 만료 된 경우에만 새 광고 요청을 보내야하며 사용자가 한 활동에서 다른 활동으로 이동할 때가 아닙니다.]

어쨌든 나는 이것을 할 수있다. 이전 솔루션에서 언급 한 "Singleton"접근법을 시도했지만, 그렇게 할 때마다 많은 복잡성이 발생했습니다. 지정된 자식에는 이미 부모가 있고 부모에 removeView를 호출해야한다고합니다.

아무 것도 나에게 (OR/AND)하고있는 사람이 누구든 다른 해결책으로 나를 도울 수 있습니까 ??

내 싱글 톤 클래스는 여기에 있습니다 :

public class CommonAdFooter { 
static final CommonAdFooter commonAdFooter = new CommonAdFooter(); 
static AdView admobView; 
LayoutInflater LInflater; 

private CommonAdFooter() { 
    LInflater = (LayoutInflater) Constants.context 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

    admobView = (AdView) LInflater.inflate(R.layout.ad_layout, null); 
    LayoutParams lp = new LayoutParams(LayoutParams.FILL_PARENT, 
      LayoutParams.WRAP_CONTENT); 
    lp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); 
    admobView.setLayoutParams(lp); 
} 

public static AdView getAdLayout() { 
    return admobView; 
} 
} 

을하고이

<?xml version="1.0" encoding="utf-8"?> 
<com.admob.android.ads.AdView 
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:myapp="..." 
android:id="@+id/ad" android:layout_alignParentBottom="true" 
android:background="#C9E3F6" android:layout_width="fill_parent" 
android:layout_height="wrap_content" myapp:backgroundColor="#006699" 
myapp:primaryTextColor="#C9E3F6" myapp:secondaryTextColor="#C9E3F6" /> 

편집 광고

내 레이아웃 파일입니다 몹 API 링크를 추가했다.

+1

은 확실히 당신이 더 많은 수익을 얻을 하나를 유지하는 것보다 더 많은 광고를 게재되는 ? – Blundell

+0

예, 알고 있지만 사용자에게는 짜증이납니다. 그래서 나는 그것을위한 해결 방법을 찾을 것이라고 생각했다. –

답변

3

정확한 구문을 잘 모르겠습니다. AdMob API를 연결할 수 있습니까?

광고 레이아웃을 반환하면 이전 활동에 이미 첨부되어 있기 때문에 오류가 발생합니다. 그래서 당신이 뭔가를해야합니다 :

공공 정적 AdView가 getAdLayout() {

admobView.removeParent(); // 유사 API 참조

return admobView;

}

편집

아 여기에 우리가 간다 : AdView JavaDoc은 그래서보기 및 RelativeLayout 큰에서 herits.

이 시도 :

public static AdView getAdLayout() { 
    if(admobView.getParent() != null){ 
     admobView.detachAllViewsFromParent(); 
    } 
    return admobView; 
} 

또는

public static AdView getAdLayout() { 
    if(admobView.getParent() != null){ 
     admobView.getParent().removeView(admobView); 
    } 
    return admobView; 
} 

대답은 JavaDoc을에 시행 착오의 조금

+0

그건 도움이되지 않습니다 .. –

+0

@Anand 어떻게 도움이되지 않습니까? 좀 더 구체적으로 해 주실 수 있습니까? 마지막 오류는 실제로 당신이해야 할 일을 암시합니다. – Blundell

+1

안녕하세요, 이걸 도와 주셔서 고마워요. 이 시간에 정말 감사드립니다! –