我很难让我的Android服务运行,并且真的需要一些帮助。
我开始使用Vogella关于如何绑定服务的教程,并最终尝试了几乎所有出现在我脑海中并解决我的问题的方法。 "在onStart()"我的主Activity被调用,没有Exception(创建Intent," bindService()")被抛出。但是,也没有启动服务(apiService == null)。
我知道要让它工作起来并不困难,但遗憾的是我已经坚持了两个多小时。任何形式的帮助,指针等都非常感激。
[编辑] 服务类中设置的断点不会受到影响。此外,Log.d()条目不会在Logcat中打印。
服务扩展Android.Service并实现我自己的界面:
public class APIService extends Service implements APICall{
private final IBinder binder = new APIBinder();
@Override
public void onCreate() {
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId){
super.onStartCommand(intent, flags, startId);
return Service.START_NOT_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
return binder;
}
public class APIBinder extends Binder{
public APIService getService(){
return APIService.this;
}
}
//implementation of Interface...
主要活动/服务绑定:
public class MainActivity extends Activity {
private APIService apiService = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onStart() {
super.onStart();
Intent serviceIntent = new Intent(this, APIService.class);
bindService(serviceIntent, apiServiceConnection, Context.BIND_AUTO_CREATE);
};
@Override
protected void onDestroy(){
super.onDestroy();
unbindService(apiServiceConnection);
}
private ServiceConnection apiServiceConnection = new ServiceConnection(){
public void onServiceConnected(ComponentName className, IBinder binder) {
APIBinder localBinder = (APIBinder)binder;
apiService = localBinder.getService();
}
public void onServiceDisconnected(ComponentName className) {
apiService = null;
}
};
//click handler, etc...
清单文件条目:
<service android:name=".APIService"/>
答案 0 :(得分:0)
您应该添加
startService(serviceIntent);
之前
bindService(serviceIntent, apiServiceConnection, Context.BIND_AUTO_CREATE);