相关疑难解决方法(0)

onServiceConnected从未在bindService方法之后调用

我有一个特殊情况:由广播接收器启动的服务启动一项活动.我希望此活动能够与服务进行通信.我选择使用AIDL来实现它.除了活动中的bindService()方法之外,一切似乎都很好onCreate().实际上,bindService()抛出一个空指针异常,因为在服务方法时onServiceConnected()从不调用onBind().无论如何bindService()返回true.该服务显然是活跃的,因为它启动了活动.我知道从服务中调用活动可能听起来很奇怪,但不幸的是,这是在服务中进行语音识别的唯一方法.

提前致谢

service binding android speech-recognition

33
推荐指数
6
解决办法
4万
查看次数

绑定到已启动的服务后,从未调用ServiceConnection.onServiceConnected()

在游戏应用程序中,我有以下场景:

  • 从主游戏Activity开始,玩家开始在后台运行的几个游戏任务,持续时间不同.
  • 玩家应该能够单独查看正在运行的游戏任务的进度View.

为此,我创建了两个Activitys和a Service,定义如下:

  • Service ProgressService处理ProgressBar并行线程上同时运行的几个s.

  • Activity WorkScreen2创建一个游戏任务,启动Servicewith中startService()传递的任务参数Bundle.

  • Activity ProgressScreen绑定到Service获取并显示ProgressBar正在运行的任务的s.

  • 这两项活动在独立运行的TabHost一个第TabActivity.


我遇到的问题ServiceConnection.onServiceConnected()是永远不会调用该方法.我得到一个Java.lang.NullPointerException因为我试图调用Service应该在此方法中分配的对象的方法.见下面的代码.

getApplicationContext().bindService()用来绑定ActivityService因为TabSpec无法绑定Services.此方法返回true.因此,绑定是成功的.


这是Service:

public class ProgressService extends Service implements GameConstants {
    public static final String BROADCAST_PROGRESS = "com.mycompany.android.mygame.progressbroadcast";
    private static final long …
Run Code Online (Sandbox Code Playgroud)

multithreading android android-service android-progressbar android-tabhost

3
推荐指数
2
解决办法
1万
查看次数