Android 为什么不是';有没有接通电话?
我是一个初学者,制作了一个简单的程序来展示服务是如何工作的Android 为什么不是';有没有接通电话?,android,Android,我是一个初学者,制作了一个简单的程序来展示服务是如何工作的 ..... toStartService = new Intent(this, SimpleService.class); sc = new ServiceConnection() { @Override public void onServiceConnected(ComponentName name, IBinder service) { Toa
.....
toStartService = new Intent(this, SimpleService.class);
sc = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
Toast.makeText(MoreService.this, "SC: Binded", Toast.LENGTH_SHORT).show();
}
@Override
public void onServiceDisconnected(ComponentName name) {
Toast.makeText(MoreService.this, "SC: Unbinded", Toast.LENGTH_SHORT).show();
}
};
startService.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MoreService.this, "Starting Service", Toast.LENGTH_SHORT).show();
startService(toStartService);
}
});
stopService.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
stopService(toStartService);
}
});
bindService.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if((isBound = bindService(toStartService, sc, BIND_AUTO_CREATE))) {
}
}
});
unbindService.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(isBound) {
unbindService(sc);
isBound = false;
}
}
});
}
为什么不传递sc变量(在bindService()上)调用sc.onServiceConnected()方法?
代码有什么问题
我满足以下条件:
- 当我按[startService]时 服务开始得很好 [停止服务]服务停止得很好
- 当我按下[startService]时,[bindService]什么也不做,[unbindService]也不做
- 当我按下[bindService],它创建了服务,[stopService]没有工作。我按下[unbindService]该服务正在调用onDestroy()方法
Arrgh help mee,如果我错了,很抱歉。这是所有这些方法的设计行为。例如,在
bindService(Intent service,ServiceConnection conn,int flags)
方法中,根据,只有调用上下文存在时,服务才会运行:
只要调用上下文存在,系统就会认为该服务是必需的。例如,如果此上下文是已停止的活动,则在该活动恢复之前,不需要继续运行服务
文件上说:
断开与应用程序服务的连接。当服务重新启动时,您将不再接收呼叫,并且现在允许服务随时停止
在报告中说:
使用startService()
覆盖由bindService(Intent,ServiceConnection,int)
管理的默认服务生存期:它要求服务保持运行,直到调用stopService(Intent)
,而不管是否有任何客户端连接到它。请注意,对startService()
的调用不是嵌套的:无论您调用startService()
多少次,对stopService(Intent)
的单个调用都会停止它
谢谢,“只要调用上下文存在,服务就会运行”,那么如何绑定到已经运行的服务?如果该服务是由
startService
启动的,那么您可以绑定到它并在解除绑定后保持运行,但如果它是由bindService
启动的,然后,只要调用上下文存在,它就会继续运行!为什么会这样?我也有同样的问题。现在我明白为什么很多人讨厌Java了。。。无论如何,当你说“代码有什么问题”时要非常小心,因为在这个网站上有数以百万计的假装“态度警察”,他们什么也不做,只是四处投票否决像你这样的问题。