如何传递对活动的弱引用?

Pet*_*ang 1 android kotlin

我试图为一个 android 类实现一个主处理程序。
如何使用活动的弱引用实例化 MyHandler 对象?

class MainActivity: AppCompatActivity {
    class MyHandler(var mActivityRef: WeakReference<MainActivity>): Handler(){
        override fun handleMessage(msg: Message?) {
            var activity: MainActivity? = mActivityRef.get()// get actual object from weak reference

            if(activity != null) {
                if (msg?.what == 0) {
                //...some logic
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*cak 7

我认为最好直接Activity在构造函数中传递实例并执行

this.weaActivity = new WeakReference<MyActivity>(activityRef);
Run Code Online (Sandbox Code Playgroud)

外面的类MyHandler不需要知道Activity保存到Reference. 这是一个仅与MyHandler