0
点赞
收藏
分享

微信扫一扫

Android 使用服务注册广播接收者


public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//开启服务
Intent intent = new Intent(this, ScreenService.class);
startService(intent);
}
}


public class ScreenService extends Service {

private ScreenReceiver receiver;

public ScreenService() {
}

@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
// throw new UnsupportedOperationException("Not yet implemented");
return null;
}

@Override
public void onCreate() {
//1 创建ScreenReceiver实例
receiver = new ScreenReceiver();
//2 获取IntentFilter实例 目的是添加action
IntentFilter filter = new IntentFilter();
//3 添加action
filter.addAction("android.intent.action.SCREEN_OFF");
filter.addAction("android.intent.action.SCREEN_ON");
//4 动态注册广播接收者
registerReceiver(receiver, filter);
super.onCreate();
}

@Override
public void onDestroy() {
//当服务销毁的时候 取消注册广播接收者
unregisterReceiver(receiver);
super.onDestroy();
}
}


public class ScreenReceiver extends BroadcastReceiver {
private static final String TAG = "jojo";
@Override
public void onReceive(Context context, Intent intent) {
// TODO: This method is called when the BroadcastReceiver is receiving
// an Intent broadcast.
// throw new UnsupportedOperationException("Not yet implemented");
//获取当前事件类型
String action = intent.getAction();
if ("android.intent.action.SCREEN_OFF".equals(action)) {
Log.d(TAG, "onReceive: 屏幕锁屏了");
} else if ("android.intent.action.SCREEN_ON".equals(action)) {
Log.d(TAG, "onReceive: 屏幕解锁了");
}
}
}


举报

相关推荐

0 条评论