我有IntentService应该通过绑定使用来自另一个服务的引用:
public class BaseIntentService extends IntentService implements ServiceConnection {
protected NetworkApi network;
public BaseIntentService() {
super("BaseIntentService");
}
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
network = ((NetworkApiBinder) service).getApi();
// never be invoked
}
@Override
public void onServiceDisconnected(ComponentName name) {
}
@Override
public void onCreate() {
super.onCreate();
bindService(new Intent(this, NetworkApi.impl), this, BIND_AUTO_CREATE);
}
@Override
public void onDestroy() {
super.onDestroy();
unbindService(this);
}
@Override
protected void onHandleIntent(Intent intent) {
// network always null!!!
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我使用像这样的绑定时,onServiceConnected永远不会被调用.我知道IntentService不是为绑定模式而设计的,但是对于这样的任务可能有一个共同的解决方案吗?
谢谢!
Com*_*are 11
但是当我使用像这样的绑定时,onServiceConnected永远不会被调用
那是因为IntentService在绑定请求开始之前你就被销毁了.一个IntentService时,会自动销毁onHandleIntent()完成所有未完成的命令.
但可能有这种任务的共同解决方案
没有两项服务.摆脱IntentService并将其逻辑移到其他服务中.
| 归档时间: |
|
| 查看次数: |
5120 次 |
| 最近记录: |