2024年Android最全Android Service与Activity之间的通信(bindService启动方式),2024年最新蚂蚁金服 面经

最后

这里我希望可以帮助到大家提升进阶。

内容包含:Android学习PDF+架构视频+面试文档+源码笔记高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 这几块的内容。非常适合近期有面试和想在技术道路上继续精进的朋友。

喜欢本文的话,不妨给我点个小赞、评论区留言或者转发支持一下呗~

img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

show();

}

}

}

相对于上文Android Service的基本用法添加了一个 onUnbind方法,以及一些操作在这里插入图片描述

下面开始介绍下bindService启动方式

在这里插入图片描述

可以看到其中有三个参数,第二个参数如下

在这里插入图片描述

Java文件如下

public class StartSevice extends AppCompatActivity implements View.OnClickListener {

private Button btn_start;

private MyConn conn;

private BasisService.BasisBind basisBind;

private Button btn_stop;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_start_sevice);

conn = new MyConn();

initView();

}

private void initView() {

btn_start = (Button) findViewById(R.id.btn_start);

btn_start.setOnClickListener(this);

btn_stop = (Button) findViewById(R.id.btn_stop);

btn_stop.setOnClickListener(this);

}

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.btn_start:

//绑定的方式启动

Intent bindIntent = new Intent(this, BasisService.class);

bindService(bindIntent, conn, BIND_AUTO_CREATE);

break;

case R.id.btn_stop:

//建议写在onDestroy()方法中,这里只为显示效果

unbindService(conn);

break;

}

}

public void verify() {

//脱离了service的体系,不能用new对象来调用服务的方法

BasisService service = new BasisService();

service.show();

}

@Override

protected void onDestroy() {

super.onDestroy();

//解除绑定

unbindService(conn);

}

//ServiceConnection 服务连接

private class MyConn implements ServiceConnection {

//当服务连接时,如果绑定的服务onBind()没有返回值,则不执行该方法

//第三个参数iBinder:可以转化成在服务里写的自定义IBinder

@Override

public void onServiceConnected(ComponentName componentName, IBinder iBinder) {

//拿到中间人

basisBind = (BasisService.BasisBind) iBinder;

basisBind.realize();

}

@Override

public void onServiceDisconnected(ComponentName componentName) {

}

}

}

下面运行通过看日志了解一下其生命周期

题外话

我们见过很多技术leader在面试的时候,遇到处于迷茫期的大龄程序员,比面试官年龄都大。这些人有一些共同特征:可能工作了7、8年,还是每天重复给业务部门写代码,工作内容的重复性比较高,没有什么技术含量的工作。问到这些人的职业规划时,他们也没有太多想法。

其实30岁到40岁是一个人职业发展的黄金阶段,一定要在业务范围内的扩张,技术广度和深度提升上有自己的计划,才有助于在职业发展上有持续的发展路径,而不至于停滞不前。

不断奔跑,你就知道学习的意义所在!

注意:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 10
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值