2024年安卓最新【Android】16(1),2024年最新字节跳动 三面挂掉的概率

更多学习和讨论,欢迎加入我们!

有许多来自一线的技术大牛,也有在小厂或外包公司奋斗的码农,我们致力打造一个平等,高质量的Android交流圈子,不一定能短期就让每个人的技术突飞猛进,但从长远来说,眼光,格局,长远发展的方向才是最重要的。

这里有2000+小伙伴,让你的学习不寂寞~·

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

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

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

}

}

}).start();

}

@Override

public void onDestroy() {

super.onDestroy();

running = false;

}

}

3.修改MainActivity。

public class MainActivity extends AppCompatActivity implements View.OnClickListener, ServiceConnection {

//声明变量

private Button btnStart;

private Button btnStop;

private Button btnBind;

private Button btnUnBind;

private Button btnSync;

private EditText edit_info;

private Intent intent;

private MyService.Binder binder;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//实例化控件

setContentView(R.layout.activity_main);

btnStart = findViewById(R.id.btnStart);

btnStop = findViewById(R.id.btnStop);

btnBind = findViewById(R.id.btnBind);

btnUnBind = findViewById(R.id.btnUnBind);

btnSync = findViewById(R.id.btnSync);

edit_info = findViewById(R.id.edit_info);

//绑定事件

btnStart.setOnClickListener(this);

btnStop.setOnClickListener(this);

btnBind.setOnClickListener(this);

btnUnBind.setOnClickListener(this);

btnSync.setOnClickListener(this);

//实例化服务

intent = new Intent(this,MyService.class);

}

//处理事件

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.btnStart:

//启动服务并传参

intent.putExtra(“info”, edit_info.getText().toString());

startService(intent);

break;

case R.id.btnStop:

//停止服务

stopService(intent);

break;

case R.id.btnBind:

//绑定服务

bindService(intent,this,BIND_AUTO_CREATE);

break;

case R.id.btnUnBind:

//解绑服务

unbindService(this);

break;

//同步服务

case R.id.btnSync:

if (binder != null) {

//把值传到MyService

binder.setInfo(edit_info.getText().toString());

}

break;

}

}

//绑定服务成功后执行

@Override

public void onServiceConnected(ComponentName name, IBinder service) {

//赋值MyService的Binder 给 MainActivity的Binder。

//赋值后可以调用 setInfo()方法传参

binder = (MyService.Binder) service;

}

//onServiceDisconnected()方法在连接正常关闭的情况下是不会被调用的, 该方法只在Service 被破坏了或者被杀死的时候调用.

//例如, 系统资源不足, 要关闭一些Services, 刚好连接绑定的 Service 是被关闭者之一, 这个时候onServiceDisconnected() 就会被调用。

@Override

public void onServiceDisconnected(ComponentName name) {

}

}

学习路线+知识梳理

花了很长时间,就为了整理这张详细的知识路线脑图。当然由于时间有限、能力也都有限,毕竟嵌入式全体系实在太庞大了,包括我那做嵌入式的同学,也不可能什么都懂,有些东西可能没覆盖到,不足之处,还希望小伙伴们一起交流补充,一起完善进步。

这次就分享到这里吧,下篇见

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

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

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值