3.10
安卓核心组件 ——Activity、Service 与 BroadcastReceiver
Activity 是安卓应用与用户交互的主要界面,我们之前已经接触过。它有自己完整的生命周期,包括 onCreate、onStart、onResume、onPause、onStop、onDestroy 等方法。合理利用这些生命周期方法,可以优化应用的性能和用户体验。
例如,在 onCreate 方法中进行界面初始化、资源加载等操作,在 onPause 方法中暂停一些不必要的任务,避免在应用失去焦点时消耗过多资源。
Service 是在后台运行的组件,不与用户直接交互,常用于执行长时间运行的任务,如音乐播放、文件下载等。下面是一个简单的 Service 示例,创建一个 MyService 类继承自 Service:
package com.example.myservice;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;
public class MyService extends Service {
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Toast.makeText(this, "Service Started", Toast.LENGTH_SHORT).show();
// 这里可以执行后台任务
return START_STICKY;
}
@Override
public void onDestroy() {
Toast.makeText(this, "Service Stopped", Toast.LENGTH_SHORT).show();
super.onDestroy();
}
}
别忘了在 AndroidManifest.xml 中声明 Service:
<service
android:name=".MyService"
android:enabled="true"
android:exported="false" />
BroadcastReceiver 用于接收系统或应用发出的广播消息,比如网络状态变化、电量变化等。创建一个自定义的 BroadcastReceiver,继承自 BroadcastReceiver 类:
package com.example.broadcastreceiver;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_BATTERY_LOW.equals(intent.getAction())) {
Toast.makeText(context, "Battery is low", Toast.LENGTH_SHORT).show();
}
}
}
同样在 AndroidManifest.xml 中注册 BroadcastReceiver:
理解并掌握 Activity、Service 和 BroadcastReceiver 这些核心组件,能让你开发出功能更丰富、更完善的安卓应用。
浙公网安备 33010602011771号