java getThreadHandler方法无法从HandlerThread实例访问
我正在查看HandlerThread类的源代码,并注意到该类包含一个数据成员mHandler。mHandler是类型Handler的实例
private @Nullable Handler mHandler;
还有一个访问器方法用于获取HandlerThread类中定义的私有成员的实例
@NonNull
public Handler getThreadHandler() {
if (mHandler == null) {
mHandler = new Handler(getLooper());
}
return mHandler;
}
我试图通过调用HandlerThread引用上的方法来获取对mHandler成员的引用。AndroidStudio不允许对HandlerThread实例调用getThreadHandler方法。该方法看起来是公共的,就像可以在HandlerThread实例上调用的其他公共方法一样。有人知道为什么不能在HandlerThread实例上调用公共方法getThreadHandler吗。我是不是在类/方法/成员定义中遗漏了什么?我用于实例化HandlerThread实例和调用方法的代码如下所示
...
import 安卓.os.*
...
class SearchActivity : AppCompatActivity(), View.OnClickListener {
...
private val backgroundWork = HandlerThread("BackgroundApiCall")
private lateinit var backgroundHandler: Handler
...
override fun onCreate(savedInstanceState: Bundle?) {
...
backgroundWork.start()
backgroundHandler = = Handler(backgroundWork.looper)
// an attempt here to call getThreadHandler will not work
val handler = backgroundWork.threadHandler // or .getThreadHandler() for our Java friends
...
override fun onDestroy() {
super.onDestroy()
backgroundWork.quit()
}
override fun onClick(_searchBtn: View?) {
backgroundHandler.post(requestWork)
}
....
注意:我只发布了与当前问题相关的代码,而不是整个类
共 (0) 个答案