zoukankan      html  css  js  c++  java
  • 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)传值。

  • 相关阅读:
    jar包和war包的区别:
    tail
    redis
    查看Linux操作系统版本
    CentOS 7.0 systemd代替service
    周刊(三月最后一期)
    周刊第四期
    周刊第三期
    周刊第二期
    周刊(第一期)
  • 原文地址:https://www.cnblogs.com/to-creat/p/5682338.html
Copyright © 2011-2022 走看看