我在我的LoginFragment.class中使用以下代码在Android中启动了一个Activity:
startActivity(new Intent(getActivity(), ClientActivity.class));
getActivity().finish();
你可以看到,我在开始新活动后杀死了片段。 现在,此活动通过以下方式启动服务本身:
startService(new Intent(ClientActivity.this, MyTCPIPService.class));
稍后,当点击我的首选项中的按钮时,我想停止服务。 我试过这个:
Preference button = (Preference)findPreference("pref_logout");
button.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
stopService(new Intent(getApplication(), MyTCPIPService.class));
startActivity(new Intent(getApplication(), ClientActivity.class));
finish();
return true;
}
});
onDestrop() - 我的MyTCPIPService.class的方法被调用,但服务不会停止。 另外我想知道如何在重新启动之前停止我的ClientActivity.class?
也许错误是,我在尝试停止服务时创建新意图? 谁能在这帮助我?
修改 我不认为它与提交的问题有重复,因为我在我的服务中确实有一个Async-Task,但在onDestroy()中 - 方法我取消它并设置其中的对象开始为“null” 。所以它不应该是问题,有一个无限循环或async-Task仍在运行并保持服务。
答案 0 :(得分:1)
您确定使用LoginFragment
关闭了getActivity().finish()
吗?
使用getActivity().getSupportFragmentManager().popBackStack()
,检查其中的onDetach()
方法。
您使用的是什么service
,START_STICKY
/ START_NOT_STICKY
?检查其中的onTaskRemoved()
方法。尝试使用service
关闭stopSelf()
。