Service

这只是我在学Android过程中对于所学知识的巩固和方便日后查询的学习笔记,能帮助到有需要的和我一样的初学者就更好了

服务中的代码是运行在主线程中的,所以不可以直接做需要长时间维持的动作
但是虽然其运行在主线程中,但是却不能直接更新UI

Service的具体实现##

1、MyService继承Service
2、重写onCreate()、onStartCommand()、onDestroy()
3、Intent开启服务或Notification开启前台服务

Service与Activity的通信(Binder)

1、新建MyService继承Service
2、新建MyService内部类MyBinder继承Binder类并使IBinder onBinder()返回此对象
3、Activity中新建ServiceConnection接口对象connection并重写其中方法
4、建立Intent并调用bindService()与unbindService()来绑定与解绑

public MyService extends Service{
    private MyBinder mbinder=new MyBinder();
    class MyBinder extends Binder{
        //方法,如void start();  void stop();
    }
    @override
    public IBinder onBinde(Intent intent){
        return mbinder;
    }
}

Activity中

private MyService.MyBinder myBinder;
private ServiceConnection connection=new ServiceConnection(){
    @override
    public void onServiceConnected(ComponentName name ,IBinder service){
        myBinder=(MyService.MyBinder)service;
        myBinder.start();//MyBinder中的方法
    }
    @override
    public void onServiceDisConnected(ComponentName name){
        //这里貌似不用写什么东西
    }
}

绑定与解绑

Intent intent=new Intent(MainActivity.this ,MyService.class);
bindService(intent ,conntction ,BIND_AUTO_CREATE);
-------------------------------------------------------------------------------
unbindeService(connection);

前台服务

public class MyService extends Service{
    @override
    public void onCreate(){
        Intent intent=new Intent(this ,MainActivity.class);
        PeddingIntent pi=PeddingIntent.getActivity(this ,0 ,intent ,0);
        Notification nocification=new NotificationCompat.Builder(this)
                                                                                      ...............
                                                                          .setContentIntent(pi)
                                                                          .build();
        startForeground(1 ,notification);
   }
}

IntentService

运行完代码就关闭服务
IntentService的onHandleIntent()可进行UI更新

具体实现
继承IntentService即可

你可能感兴趣的:(Service)