android中activity向service中传值


和activity中互相传值类似

在activity中

Intent regIntent = new Intent(this, ChatService.class);
  regIntent.putExtra("student_id", student_id);
  startService(regIntent);

然后再service中的onStart函数中获取该值

student_id=intent.getStringExtra("student_id");
  System.out.println("sevice_student_id---------------"+student_id);

当然写到这里还是不能传的,不然会报错!!!

我们需要在Mainfeist文件中注册这个service

销毁Service写在activity的onDestroy方法里:

 @Override
 protected void onDestroy() {
   ChatActivity.this.stopService(new
   Intent(ChatActivity.this,
   ChatService.class));
  super.onDestroy();
 }

补充:

也可以从public int onStartCommand(Intent intent, int flags, int startId)中取出从activity中传过来的值。intent.getExtra()获得bundle对象,可从中取值。
也可以用bindService(intent, conn,BIND_AUTO_CREATE);传值,把要传的值绑定在intent里,在service的public IBinder onBind(Intent intent) 方法里取得intent。
可以在service里面注册一个广播,在activity里sendbroadcast(intent)传值。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM