活动(Activity)
- 定义:Activity是一个可以通过用户直接交互的屏幕。它是用户与应用交互的窗口,可以包含各种视图(View)和视图组(ViewGroup)。
- 生命周期:Activity具有丰富的生命周期,包括创建(onCreate)、启动(onStart)、运行(onResume)、暂停(onPause)、停止(onStop)和销毁(onDestroy)等状态。
- 用户界面:Activity负责管理用户界面。每个Activity通常对应应用中的一个屏幕。
- 交互:Activity可以直接与用户交互,响应用户的输入,如点击、滑动等。
- 任务和回退栈:Activity通常被组织在任务和回退栈中,用户可以通过按下返回键来导航。
服务(Service)
- 定义:Service是一个运行在后台,不提供直接用户界面的组件。它用于执行长时间运行的操作,或者为远程组件(如Activity)提供功能。
- 生命周期:Service的生命周期比Activity简单,主要包括创建(onCreate)、绑定(onBind)、未绑定(onUnbind)、销毁(onDestroy)等状态。
- 后台任务:Service适合执行不需要用户直接交互的后台任务,如播放音乐、处理文件、执行网络请求等。
- 绑定和通信:Service可以通过绑定机制与Activity通信。Activity可以通过调用Service的
bindService
方法来绑定Service,并使用回调接口(Binder)与Service进行交互。 - 前台和后台:Service可以运行在前台或后台。前台Service通常会显示一个持续的通知,以便用户知道Service正在运行。
服务周期
1 | public class MusicService extends Service { |
onStartCommand
是 Android 服务中的一个回调方法,用于处理启动服务的请求。具体来说,它在以下情况下被调用
返回值:
onStartCommand
需要返回一个整数,表示服务的启动模式:
- START_STICKY:如果系统杀死了服务,重启时会调用
onStartCommand
,但不会传递原来的Intent
。 - START_NOT_STICKY:如果系统杀死了服务,则不重启服务。
- START_REDELIVER_INTENT:如果系统杀死了服务,重启时会调用
onStartCommand
,并传递最后的Intent
。
服务启动
R.raw.your_music_file
是指将音乐文件放在项目的 res/raw
目录下。在 Android Studio 中,你可以右击 res
文件夹,选择 “New” > “Directory” 创建 raw
文件夹,然后将你的音乐文件放入其中。确保文件名是小写字母,并且不包含空格或特殊字符