我有一个网络应用程序,它使用服务连接到其他同行。当您使用“最近的应用程序”关闭应用程序时,它将关闭该过程,而不是service
,这实际上并不是因为我希望以这种方式。但是下次用户打开应用程序时会遇到一些麻烦。它崩溃,因此用户必须使用“Recent Apps”再次关闭,然后再次尝试使用该应用程序。问题肯定是正在运行的服务,因为如果我在下次运行之前停止服务。它运作得很好!
实际上对我来说很奇怪,因为我没有在启动时启动另一个service
。当用户点击按钮时我启动它。无论如何,如果有可能,最好的方法是能够使用正在运行的service
,否则,我只想在我的应用程序启动时停止服务。
我是Android的新手,我在这一点上陷入困境:(
感谢您的帮助
答案 0 :(得分:0)
服务骨架:
public class MyService extends Service {
public static final String TAG = "MyServiceTag";
...
}
这是开始活动的一部分:
processStartService(MyService.TAG);
private void processStartService(final String tag) {
Intent intent = new Intent(getApplicationContext(), MyService.class);
intent.addCategory(tag);
startService(intent);
}
这是停止活动的一部分:
processStopService(MyService.TAG);
private void processStopService(final String tag) {
Intent intent = new Intent(getApplicationContext(), MyService.class);
intent.addCategory(tag);
stopService(intent);
}
答案 1 :(得分:0)
使用一个static
对象来指示服务是否正在运行。
否则第二个选项我找到How to check if a service is running on Android?,
if(startService(someIntent) != null) {
Toast.makeText(getBaseContext(), 'Service is already running',Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(getBaseContext(), 'There is no service running, starting service..', Toast.LENGTH_SHORT).show();
}