Service小結(jié)
- 按種類
Local
Remote - 類型
前臺(tái)(Notification)
后臺(tái) - 啟動(dòng)方式
Start
bind - Service與Thread與Process
- Service的生命周期
onCreate
onStart
onBind
onDestory等
AndroidMainfest.xml中的Service
- android:name
- android:label
- android:icon
- android:permission
- android:process
- android:enabled
- android:exported
Service的一些補(bǔ)充知識(shí)點(diǎn)
Service>
-
遠(yuǎn)程服務(wù)
Messenger
public class MessengerActivity extends Activity {
private Messenger mMessenger;
private ServiceConnection mServiceConnection = new ServiceConnection() {
// 當(dāng)與service的連接建立后被調(diào)用
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
mMessenger = new Messenger(service);
}
@Override
public void onServiceDisconnected(ComponentName name) {
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
bindService(new Intent(this, MessengerService.class),mServiceConnection, Context.BIND_AUTO_CREATE);
if(mMessenger != null){
Message message = Message.obtain(null, 0, "hello");//發(fā)送Message
try {
mMessenger.send(message);
} catch (RemoteException e) {
e.printStackTrace();
}
}
}}
服務(wù)端(接收Message)public class MessengerService extends Service { // 適合于多進(jìn)程缩宜,單線程。润脸。不需要考慮線程安全 Messenger mMessenger = new Messenger(new IncomingHandler()); class IncomingHandler extends Handler{ @Override public void handleMessage(Message msg) { super.handleMessage(msg); // 處理消息 switch (msg.what){ case 0: // fdsfdskfdlsj; break; } } } @Nullable @Override public IBinder onBind(Intent intent) { return mMessenger.getBinder(); }}