方法1
https://blog.csdn.net/u012881042/article/details/80888415
方法2
private val mhandler: Handler = object : Handler() { override fun handleMessage(msg: Message?) { super.handleMessage(msg) var mipmapId = resources.getIdentifier("v" + msg?.what, "mipmap", packageName) mGetIdentifierIv.setImageResource(mipmapId) time++ if (time == 7) time = 1 sendEmptyMessageDelayed(time, 1000)//继续延迟1秒发送消息让Handler继续执行 形成循环 }
方法3
/** * kotlin 中 Handler 简写 */ private val mHandler2 = Handler { var mipmapId = resources.getIdentifier("v" + it?.what, "mipmap", packageName) mGetIdentifierIv.setImageResource(mipmapId) time++ if (time == 7) time = 1 it.target.sendEmptyMessageDelayed(time, 1000)//继续延迟1秒发送消息让Handler继续执行 形成循环 }
方法4/** * kotlin 中 Handler 简写 */
private var mHandler: NoLeakHandler? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_get_identifier) mHandler = NoLeakHandler(this, time, mGetIdentifierIv) mHandler!!.sendEmptyMessageDelayed(time, 1000)//继续延迟1秒发送消息让Handler继续执行 形成循环 } internal class NoLeakHandler(activity: Activity, var time: Int, var mGetIdentifierIv: ImageView) : Handler() { private val mActivity: WeakReference<Activity> init { mActivity = WeakReference(activity) } override fun handleMessage(msg: Message) { val activity = mActivity.get() if (activity != null) { var mipmapId = activity.resources.getIdentifier("v" + msg?.what, "mipmap", activity.packageName) mGetIdentifierIv.setImageResource(mipmapId) time++ if (time == 7) time = 1 sendEmptyMessageDelayed(time, 1000)//继续延迟1秒发送消息让Handler继续执行 形成循环 } } }