Message.obtain()
时间: 2023-10-27 07:58:55 浏览: 153
`Message.obtain()` 是一个静态方法,用于获取一个空闲的 `Message` 对象,以便在 Android 应用程序中进行消息传递。在 Android 应用程序中,通常会使用消息传递机制来实现不同组件之间的通信,例如在主线程和工作线程之间传递消息,或者在不同的 Activity 之间传递消息。
`Message.obtain()` 方法可以避免频繁地创建和销毁 `Message` 对象,从而提高应用程序的性能。它会从一个消息池中获取一个空闲的 `Message` 对象,如果池中没有可用的对象,则会创建一个新的对象。
使用 `Message.obtain()` 方法获取 `Message` 对象后,可以通过设置 `what`、`obj`、`arg1` 等属性来设置消息的内容,然后将该消息发送到目标 `Handler` 中,从而实现消息传递。
相关问题
Message message = Message.obtain();
这段代码是在Java中创建一个Message对象的方式之一。Message是一种轻量级的消息传递机制,可以用于在不同线程之间传递消息和数据,常用于实现异步消息处理、线程间通信等功能。在这段代码中,通过调用Message类的静态方法obtain()创建一个Message对象message,该方法会从消息池中获取一个可用的Message对象,如果消息池中没有可用对象,则会创建一个新的Message对象。通过Message对象,可以设置消息的what、arg1、arg2、obj等属性,用于传递不同的消息和数据。在使用完Message对象后,可以通过调用Message.recycle()方法将该对象回收到消息池中,以便复用。
@Override public void onCompletion(MediaPlayer player) { index++; if(index>=MainActivity.list.size())index=0; Play(); Message mm=Message.obtain(); mm.what=200; mm.arg1=index; MainActivity.hh.sendMessage(mm); }这段代码是什么意思
这段代码是 Java 代码,是一个 `onCompletion` 方法的实现。
`@Override` 是一个 Java 注解,表示这个方法是重写父类的方法。
`public void onCompletion(MediaPlayer player)` 定义了这个方法的访问权限是 `public`(公共的,对所有类可见),返回值是 `void`(无返回值),方法名是 `onCompletion`,参数是一个 `MediaPlayer` 类型的对象 `player`。
方法体中的代码会在 `MediaPlayer` 播放完毕时执行。
首先,定义一个变量 `index`。
然后,判断 `index` 是否大于等于 `MainActivity.list` 的大小,如果是,就将 `index` 赋值为 0。
接着,调用 `Play` 方法。
最后,创建一个 `Message` 对象 `mm`,设置它的属性 `what` 为 200,`arg1` 为 `index`,并将 `mm` 发送给 `MainActivity.hh`。
阅读全文