在 activity 之外调用 chromecast 媒体路由器

Invoke chromecast media router outside an activity

我将 Chromecast sdk 暴露给一个可以在本机反应中使用的库。

所以,当我 运行

VideoCastManager.initialize(mCurrentActivity, options);
mCastManager = VideoCastManager.getInstance();
mCastManager.startCastDiscovery();

在主 activity 中,效果很好。但是如果我从 class 开始,它会崩溃

java.lang.IllegalStateException: The media router service must only be accessed on the application's main thread.

但我需要一种在 activity 之外调用 startDiscovery 方法的方法,因为它将从另一个操作中调用,并且如果它找到或没有找到 chromecast 就会广播。

有办法吗?

例外是关于主线程和工作线程;你是在工作线程上调用它吗?如果是这样,您应该进行一些更改以在应用程序的主线程上调用它。