前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android-Service定义与调用

Android-Service定义与调用

作者头像
圆号本昊
发布2021-09-24 11:55:34
4010
发布2021-09-24 11:55:34
举报
文章被收录于专栏:github@hornhuang

首先,Service 干什么用?

什么时候需要Service呢?比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录你地理信息位置的改变等等,总之服务嘛,总是藏在后头的。

Service的基本方法:

IBinder onBind(Intent intent);

该方法返回一个IBinder对象,应用程序通过改对象与Service组件通信

void onCreate();

第一次创建时回调

void onDestroy();

关闭之前调用

void onStartCommand();

用户调用 startService(intent) 是调用该方法

boolean onUnbind();

断开链接是调用

测试:

首先建立一个FirstService类 继承 Service

代码语言:javascript
复制
public class FirstService extends Service {
    public FirstService() {
    }

    @Override
    public IBinder onBind(Intent intent) {
        // TODO: Return the communication channel to the service.
        return null;
    }
    //Service 被启动时回调该方法

    @Override
    public void onCreate() {
        super.onCreate();
        Log.v("sevtext","Service is Created");
    }
    //  Service 被启动时回调该方法
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.d("sevtext", "Service is started");
        return START_STICKY;
    }
    //Service 关闭之前回调该方法
    @Override
    public void onDestroy() {
        super.onDestroy();
        Log.d("sevtext", "Service is Destroyed");

    }
}

现在在主活动中调用该方法,以测试个方法调用的次序

脚下留下: service调用前需要在.mainfest 中声明

代码语言:javascript
复制
public class MainActivity extends AppCompatActivity {
    Button start, stop;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        start = (Button) findViewById(R.id.start);
        stop = (Button) findViewById(R.id.stop);
        //创建启动Service 的Intent
        final Intent intent = new Intent(this, FirstService.class);
        start.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //开始指定service
                startService(intent);
            }
        });
        stop.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //停止指定service
                stopService(intent);
            }
        });
    }
}

布局代码就一个线性布局加两个Button (属性为id + text + 大小)这里就不唠叨了

有什么问题请给我留言,如果上面介绍对你有用不妨点个赞呦~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/01/12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 首先,Service 干什么用?
  • Service的基本方法:
  • 测试:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档