0

我有一个网络应用程序,它使用服务连接到其他对等点。当您使用“最近的应用程序”关闭应用程序时,它只会关闭进程,而不是关闭进程,service这实际上对我来说还不错。但是下次用户打开应用程序时会有点麻烦。它崩溃了,所以用户必须再次使用“最近的应用程序”关闭它,然后再次尝试使用该应用程序。问题肯定是正在运行的服务,因为如果我在下次运行它之前停止该服务。它工作得很好!

实际上这对我来说很奇怪,因为我没有service在启动时开始另一个。我在用户点击按钮时启动它。无论如何,如果可能最好的方法是能够使用 running service,否则,我只想在我的应用程序启动时停止服务。

我是android新手,我被困在这一点上:(

感谢帮助

4

2 回答 2

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);
}
于 2013-02-27T06:09:13.233 回答
0

使用一个static对象来指示服务是否正在运行。

否则第二个选项我发现如何检查服务是否在 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();
}
于 2013-02-27T06:12:18.637 回答