通过Intent action
多用于启动一些应用,如打开浏览器,打开拨号盘等
比如关机
Intent intent = new Intent(Intent.ACTION_REQUEST_SHUTDOWN);
intent.putExtra(Intent.EXTRA_KEY_CONFIRM, false);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
通过广播 BroadcastReceiver
多用于监听一些事件,如监听开机广播,监听电源键,监听来电短信,或者事件传递如打开飞行模式,打开手电筒等
如重启
Intent intent<span style="font-family: Arial, Helvetica, sans-serif;"> </span>= new Intent(Intent.ACTION_REBOOT);
intent.putExtra("nowait", 1);
intent.putExtra("interval", 1);
intent.putExtra("window", 0);
sendBroadcast(intent);
通过ContentProvider
多用于数据库相关 ,如联系人,短信,图库数据保存,传递
通过AIDL
系统最常用的方法大部分实现都使用了AIDL,如位置,LED,Wifi,蓝牙,电池等
通过Settings 一般用于设置config
final int WaterDefault = Settings.Secure.getInt(getContentResolver(),
Settings.Secure.WATERRESISTANCE,
Settings.Secure.WATERRESISTANCE_DEFAULT);
final boolean WaterState =
(WaterDefault == Settings.Secure.WATERRESISTANCE_ON);
mToggleWaterTextPreference.setChecked(WaterState);
mToggleHighTextContrastPreference.setChecked(
Settings.Secure.getInt(getContentResolver(),
Settings.Secure.ACCESSIBILITY_HIGH_TEXT_CONTRAST_ENABLED, 0) == 1);