Android Service服务(一)

来源:互联网 发布:淘宝评论福利晒图 编辑:程序博客网 时间:2024/06/05 03:08

服务(Service)是Android中实现程序后台运行的解决方案,很适合执行一些不需要用户交互而且还需要长期运行的任务,比如下载音视频的播放串口通信

服务不是运行在一个独立的进程中,而是依赖创建服务所在的进程,当应用程序进程被杀掉,所有依赖该进程服务也会停止运行,所以服务本身不会开启线程,所有代码默认主线程中运行。
生成MyService类

public class MyServerce extends Service {    @Override    public void onCreate() {        super.onCreate();        Log.d("MyServerce","创建服务");    }    @Override    public int onStartCommand(Intent intent, int flags, int startId) {        Log.d("MyServerce","每次服务启动时候调用");        return super.onStartCommand(intent, flags, startId);    }    @Override    public void onDestroy() {        Log.d("MyServerce","服务销毁");        super.onDestroy();    }    @Override    public void onConfigurationChanged(Configuration newConfig) {        Log.d("MyServerce","配置更改");        //服务停止        stopSelf();        super.onConfigurationChanged(newConfig);    }    @Override    public void onLowMemory() {        Log.d("MyServerce","内存不足");        super.onLowMemory();    }    @Override    public void onTrimMemory(int level) {        Log.d("MyServerce","压缩处理内存");        super.onTrimMemory(level);    }    @Nullable    @Override    public IBinder onBind(Intent intent) {        return myBinder;    }    @Override    public boolean onUnbind(Intent intent) {        return super.onUnbind(intent);    }    @Override    public void onRebind(Intent intent) {        super.onRebind(intent);    }    @Override    public void onTaskRemoved(Intent rootIntent) {        super.onTaskRemoved(rootIntent);    }}

四大组件都要注册

<service android:name=".MyServerce"            android:enabled="true"            android:exported="true">            <!--android:enabled="true"是否启用该服务-->            <!--android:exported="true"是否允许当前程序之外的程序访问该服务-->        </service>

在Activity简单中使用

 @Override    public void onClick(View view) {        switch (view.getId()){            case R.id.button_start:                //启动                Intent intent = new Intent(this,MyServerce.class);                startService(intent);                break;            case R.id.button_stop:            //停止                Intent intent1 = new Intent(this,MyServerce.class);                stopService(intent1);                break;            default:                break;        }    }
原创粉丝点击