我之前通过MainActivity
从startActivityForResult
开始语音识别服务,并将onActivityResult
也放在主要部分。我也通过MainActivity
中的finishActivity停止服务。所有工作都是O.K.
现在我将服务的活动传递给Fragment
以及onActivityResult
中的Fragment
。它到那里重播。但是当我把finishActivity放在Fragment
中时,它将它标记为红色并且无法识别它。
它看起来需要活动所以我在getActivity.finishActivity(THE REQUEST CODE)
之前添加并运行。但看起来它不再关闭服务了。哪里可能是问题?酒吧。
如果在同一服务中,请尝试使用this.stopSelf()
或者在你的onActivityResult内部尝试调用stopService(intent)
参考
alternative to finish() method for Service class? To kill it dead
对于相同的
见startActivityForResult() from a Fragment and finishing child Activity, doesn't call onActivityResult() in Fragment。问题是片段的startActivityForResult()
正在重新映射您的请求代码,但getActivity().finishActivity()
没有映射回来。您需要从MainActivity
而不是片段开始活动。