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