在类外调用 MainActivity 函数



我尝试在MainActivity之外展示广告。如果我在此类中调用 showAd,它可以很好地工作并显示我的广告,但是当我通过实现的接口在我的游戏类中调用此函数时,我遇到了一个错误:"需要主线程"

MMRequest request = new MMRequest(); ;  
    MMInterstitial interstitial;
  @Override
  public void onCreate(Bundle savedInstanceState) 
  {
        super.onCreate(savedInstanceState);   
        MMSDK.initialize(this);  
        interstitial = new MMInterstitial(this);               
        interstitial.setMMRequest(request);
        interstitial.setApid("xxxxxx");  
        AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();    
        RelativeLayout layout = new RelativeLayout(this);
        View gameView = initializeForView(new JumpJackieJump(new RequestHandler(), this), cfg);
        layout.addView(gameView);           
        setContentView(layout);  }
@Override
public void showAd() 
{   
    interstitial.fetch();
    interstitial.setListener(new RequestListenerImpl() 
    {   
        @Override
        public void requestCompleted(MMAd mmAd) 
        {
            interstitial.display();             
        }           
});

这是因为主线程 UI 线程。(请记住,这仅适用于安卓 - 有关更多参考,请参阅此处)。

根据 Android 文档,您应该避免在 UI 线程之外更新 UI。

Additionally, the Andoid UI toolkit is not thread-safe. So, you must not manipulate your UI from a worker thread—you must do all manipulation to your user interface from the UI thread.

话虽如此,你也许可以用这样的东西做你想要的事情。

最新更新