2014-04-17 44 views
0

你好,我想用AdColony SDK依次执行多个视频,我的意思是当一个视频完成时,另一个必须显示。但不能让它工作,第一个视频完成另一个视频不显示。 这是我的代码,我的onCreate方法:用AdColony依次执行多个视频

@Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
    super.onCreate(savedInstanceState); 
    getActionBar().hide(); 
    // Configure ADC once early before any other ADC calls (except setCustomID/setDeviceID). 
    AdColony.configure(this, "1.0", APP_ID, ZONE_ID_ONE_VIDEO); 
    // version - arbitrary application version 
    // store - google or amazon 

    // Disable rotation if not on a tablet-sized device (note: not 
    // necessary to use AdColony). 
    if (!AdColony.isTablet()) 
    { 
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
    } 

    // Notify this object about confirmed virtual currency. 
    AdColony.addV4VCListener(this); 

    // Notify this object about ad availability changes. 
    AdColony.addAdAvailabilityListener(this); 

    setContentView(R.layout.videos_ads_activity); 

    mAppPreferences = new AppPreferences(this); 

    /*video1 = new AdColonyV4VCAd(WatchVideosActivity.ZONE_ID_ONE_VIDEO); 
    video2 = new AdColonyV4VCAd(WatchVideosActivity.ZONES_FIVES_VIDEOS[1]).withListener(this); 
    video3 = new AdColonyV4VCAd(WatchVideosActivity.ZONES_FIVES_VIDEOS[2]).withListener(this); 
    video4 = new AdColonyV4VCAd(WatchVideosActivity.ZONES_FIVES_VIDEOS[3]).withListener(this); 
    video5 = new AdColonyV4VCAd(WatchVideosActivity.ZONES_FIVES_VIDEOS[4]).withListener(this);*/ 


    showOneVideo = (Button) findViewById(R.id.buttonShowOneVideo); 
    showOneVideo.setOnClickListener(
      new View.OnClickListener() 
      { 
       public void onClick(View v) 
       { 
        AdColonyV4VCAd v4vc_ad = new AdColonyV4VCAd() 
        .withListener(WatchVideosActivity.this); 

        if(v4vc_ad.getAvailableViews() == 0){ 
         Toast.makeText(WatchVideosActivity.this, "Loading ads", Toast.LENGTH_SHORT).show(); 
        }else{ 
         v4vc_ad.show(); 
        } 
       } 
      }); 

    showFiveVideos = (Button) findViewById(R.id.buttonShowFiveVideos); 
    showFiveVideos.setOnClickListener(
      new View.OnClickListener() 
      { 
       public void onClick(View v) 
       { 
        v4vc_ad = new AdColonyV4VCAd(ZONE_ID_ONE_VIDEO) 
        .withListener(WatchVideosActivity.this); 

        if(v4vc_ad.getAvailableViews() == 0){ 
         Toast.makeText(WatchVideosActivity.this, "Loading ads", Toast.LENGTH_SHORT).show(); 
        }else{ 
         v4vc_ad.show(); 
        } 
       } 
      }); 
} 

我班的其余部分(我不把实例变量,但它的声明):

 public void onPause() 
    { 
    super.onPause(); 
    AdColony.pause(); 
    } 

    public void onResume() 
    { 
    super.onResume(); 
    AdColony.resume(this); 
    } 

    // Reward Callback 
    public void onAdColonyV4VCReward(AdColonyV4VCReward reward) 
    { 
    if (reward.success()) 
    { 
     //Guardamos el reward en mi preference 
     mAppPreferences.setCoins(mAppPreferences.getCoins() + reward.amount()); 
     Log.d("AdColony", "rewaerdCallback listener"); 
    } 
    } 

    // Ad Started Callback - called only when an ad successfully starts playing 
    public void onAdColonyAdStarted(AdColonyAd ad) 
    { 
    Log.d("AdColony", "onAdColonyAdStarted"); 
    } 

    //Ad Attempt Finished Callback - called at the end of any ad attempt - successful or not. 
    public void onAdColonyAdAttemptFinished(AdColonyAd ad) 
    { 

      try { 
       Thread.sleep(1500); 
      } catch (InterruptedException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

     AdColonyV4VCAd v4vc_ad = new AdColonyV4VCAd() 
     .withListener(WatchVideosActivity.this); 

     v4vc_ad.show(); 
     } 
    } 

我创建一个新的视频onAdColonyAdAttemptFinished回调,但没有显示出来。 请帮帮我吗?提前致谢。

回答

2

新的AdColony视频广告直到onAdColonyAdAttemptFinished回调之后才会准备就绪。此外,我们不建议让按钮以这种方式显示五个视频的想法,因为无法始终确保此级别的广告可用性。

话虽这么说,对于这种可能的解决方法是使用一个处理器和一个Runnable像这样:

//In your onCreate method w/ the variables declared globally 
handler = new Handler(); 
runnable = new Runnable() 
{ 
    public void run() 
    { 
    AdColonyV4VCAd ad = new AdColonyV4VCAd(ZONE_ID).withListener(listener); 
    ad.show(); 
    } 
}; 

... 
... 
... 

//At the end of your onAdColonyAdAttemptFinished method, 
//delay a second or so to allow your Activity to regain 
//control before attempting to launch the new advertisement. 
handler.postDelayed(runnable, 1000); 

有了这个解决方案也没有必要为Thread.sleep()方法,您目前已包括在内。请随时通过[email protected]与我们联系,以便进行其他任何查询。

+0

当我转移到另一项活动或Backwark时,我的Adcolony广告会运行一次。我的interstials广告没有显示原因。 – Nepster