我知道很多关于如何停止服务的问题之前已被问过,但我没有找到解决我特定问题的问题。
在我的应用程序中,我有许多与一个中央服务通信的活动。对于每个活动,我在其onResume()方法中调用bindService(),在其onPause()方法中调用unbindService()。 我遇到的问题是,每次在两个活动之间切换时,服务都会被销毁,然后从头开始重新创建。
为了解决这个问题,我考虑在onCreate()中调用startService(),以确保服务保持活动状态。
我的问题是,我应该在哪里放置stopService() - 方法以确保在离开应用程序时调用它? 或者,是否存在另一种方法来保持服务运行,因为我在两个活动之间切换,而不依赖于startService()?
答案 0 :(得分:2)
请参阅android service startService() and bindService()以获得全面的答案。
答案 1 :(得分:1)
这就是我停止和启动服务的方式 查看此link了解详情。
public void onClick(View src) {
switch (src.getId()) {
case R.id.buttonStart:
Log.d(TAG, "onClick: starting srvice");
startService(new Intent(this, MyService.class));
break;
case R.id.buttonStop:
Log.d(TAG, "onClick: stopping srvice");
stopService(new Intent(this, MyService.class));
break;
}
}
并在服务类中:
public class MyService extends Service {
private static final String TAG = "MyService";
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
Toast.makeText(this, "My Service Created", Toast.LENGTH_LONG).show();
Log.d(TAG, "onCreate");
}
@Override
public void onDestroy() {
Toast.makeText(this, "My Service Stopped", Toast.LENGTH_LONG).show();
Log.d(TAG, "onDestroy");
}
@Override
public void onStart(Intent intent, int startid) {
Toast.makeText(this, "My Service Started", Toast.LENGTH_LONG).show();
Log.d(TAG, "onStart");
}
}
快乐的编码!