gpt4 book ai didi

android - 无法从我在其他 Activity 中启动的首选项 Activity 中停止服务

转载 作者:行者123 更新时间:2023-11-29 01:25:00 25 4
gpt4 key购买 nike

我使用以下代码在我的 LoginFragment.class 中启动一个 Android Activity :

startActivity(new Intent(getActivity(), ClientActivity.class));
getActivity().finish();

您可以看到,我在启动新 Activity 后终止了 Fragment。现在这个 Activity 启动一个 Service 本身:

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?

也许错误在于,我在尝试停止服务时创建了一个新 Intent ?有人可以帮我吗?

编辑:我不认为它与引用的问题重复,因为我的服务中确实有一个异步任务,但在 onDestroy()-Method 中我取消了它并将其中的对象设置为“空” .因此,无限循环或异步任务仍在运行并阻止服务运行应该不是问题。

最佳答案

您确定使用 getActivity().finish() 关闭了您的 LoginFragment 吗?使用getActivity().getSupportFragmentManager().popBackStack(),检查其中的onDetach()方法。

您使用什么服务START_STICKY/START_NOT_STICKY?检查其中的 onTaskRemoved() 方法。尝试使用 stopSelf() 关闭 service

关于android - 无法从我在其他 Activity 中启动的首选项 Activity 中停止服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34538300/

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