gpt4 book ai didi

android - 如何停止远程服务

转载 作者:太空狗 更新时间:2023-10-29 16:23:54 25 4
gpt4 key购买 nike

我已经创建了一个服务和一个 Activity 。在那项 Activity 中,我有两个按钮。一个是启动服务,另一个是停止服务。我可以通过调用 startService() 启动远程 Activity ,但无法使用 stopService() 停止服务。如果我点击开始按钮,我发现额外的远程进程开始运行(使用 eclipse ide)。我期待如果我点击停止按钮,那么额外的过程应该停止。但它没有发生。我能够成功调用启动和停止服务方法。为了验证代码,我在每个启动和停止方法中都添加了 toast 消息。如何停止远程服务?

我的 Activity

public class SimpleServiceController extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Button start = (Button)findViewById(R.id.serviceButton);
Button stop = (Button)findViewById(R.id.cancelButton);

start.setOnClickListener(startListener);
stop.setOnClickListener(stopListener);

}

private OnClickListener startListener = new OnClickListener() {
public void onClick(View v){
startService(new Intent(SimpleServiceController.this,SimpleService.class));
}
};

private OnClickListener stopListener = new OnClickListener() {
public void onClick(View v){
stopService(new Intent(SimpleServiceController.this,SimpleService.class));
}
};
}

服务

public class SimpleService extends Service {

@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}

@Override
public void onCreate() {
super.onCreate();
Toast.makeText(this,"Service created ...", Toast.LENGTH_LONG).show();
}

@Override
public void onDestroy() {
super.onDestroy();
Toast.makeText(this, "Service destroyed ...", Toast.LENGTH_LONG).show();
}
}

list

<service android:name=".SimpleService" android:process=":remote">
</service>

最佳答案

在 Android 中,运行中的服务和运行中的进程之间存在重要区别。

一个服务跟随一个carefully defined lifecycle ;它在 onStartCommand() 被调用时开始,在 onDestroy() 完成后结束。在该生命周期中,服务可以执行任务或闲置,但它仍在运行。

流程 可以超出服务的生命周期。如您所见,该进程可以在您的服务停止后继续运行一段时间。 别担心。 Android 将在需要时销毁进程并回收所有资源。一开始肯定会令人困惑,但是一旦您的服务停止,您就不需要关心它所在的进程了。

底线:如果 onDestroy 已被调用,则您的服务已停止。不用担心剩余的过程。

关于android - 如何停止远程服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6994580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com