当前位置: 首页 > 知识库问答 >
问题:

如果我在调用服务类上的bindService之后调用startService会发生什么?

王景山
2023-03-14
    bindService(intnt, mConnection, Context.BIND_AUTO_CREATE);

    intnt.putExtra("msg", "String from activity to service to handler 22");     

    startService(intnt);

在mclients.get(0).send(msg1)行中,我正在使索引脱离界限异常。mClients是附加到此服务并在绑定过程中存储的客户端数组。

代码与链接远程信使服务示例部分http://developer.android.com/reference/android/app/service.html完全相同,只是我在服务中添加了一个onStartCommand

@Override
public int onStartCommand(Intent intent, int flags, int startId){

    String str = intent.getStringExtra("msg");
    Message msg1 = Message.obtain(null, MSG_STR_VALUE);
    Bundle data = new Bundle();
    data.putString("message", str);
    msg1.setData(data);

    System.out.println(str);
    try {
        s1.acquire();
    } catch (InterruptedException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
    try {
        mClients.get(0).send(msg1);
    } catch (RemoteException e) {
        e.printStackTrace();
    }

    return START_STICKY;
}

共有1个答案

颜嘉福
2023-03-14

你可以在这里找到问题的答案。

调用onStartCommand()和onBind()没有特定的顺序

我自己在寻找答案,当我跑到你的问题帖子时,很难找到,所以我把它贴出来,因为其他人可能会发现它有用。

 类似资料:
  • 问题内容: 如果我提交的表单的操作字段为空,则它提交到当前页面-ajax请求就是这种情况吗? 问题答案: 没错,它会提交到当前页面。 参考,jQuery文档: url (字符串) 默认值:当前页面 一个字符串,其中包含将请求发送到的URL。 资源

  • 通常,我们使用上次读取记录的序列号调用GetShardIterator(如果我们之前的ShardIterator已过期)。 假设序列号属于保留期内(即默认24小时)的有效记录。 但是如果它在Kinesis保留期之外(即25小时前)怎么办?那么该记录/序列号将从流中删除。 GetShardIterator会抛出异常吗?什么样的异常?还是不返回记录?

  • 问题内容: 我正在尝试计算列表中值的平方和。以下是三个均计算所需值的变体。我想知道哪个是最有效的。我希望第三个装箱效率更高,因为自动装箱仅执行一次。 问题答案: 如有疑问,请测试!使用jmh,我在100k元素的列表上得到以下结果(以微秒为单位,更好): 因此,从快到慢,您已经拥有: 和 请注意,结果在很大程度上取决于JIT优化。如果映射中的逻辑更加复杂,则某些优化可能不可用(较长的代码=较少的内联

  • 问题内容: 在某个线程上调用an 时,该线程会发生什么? 问题答案: 目标线程是“中断的”。通常,在该线程中设置一个标志,该线程可以查看该标志(带有)。如果目标线程当前在某些I / O上被阻塞,则分别使用an 或an 唤醒它。 线程中断是微调线程的一种温和方法。它是用来给线程有机会退出 干净 ,而不是,这更像是一支突击步枪射击的线程。

  • 问题内容: 该功能运行什么?它只会运行吗? 问题答案: setState()将按以下顺序运行函数: 如果您的组件正在接收道具,它将使用上述功能运行该功能。

  • 目录 1.自定义Action 2.自定义一个php文件 3.php文件接收参数并返回值 4.UI如何调用testerp.service.m服务 5.查看运行结果 参考文档WeX5平台PHP开发 使用说明文档 php如何调用后端服务 1.自定义Action 在服务文件里,点击新增,然后输入名称 点参数列表的新增,新增2个参数,这个两个参数是从前台往后台传的。这样我们服务里就有了3个Action 2.