gpt4 book ai didi

Android Timber 多次记录

转载 作者:行者123 更新时间:2023-12-02 19:57:32 25 4
gpt4 key购买 nike

考虑以下简单设置。 1 个 fragment 与 1 个 ViewModel:

fragment

class TestFragment : Fragment() {

private val viewModel by lazy {
ViewModelProviders.of(this).get(TestViewModel::class.java)
}

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_test, container, false)
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
viewModel.testLiveData.observe(viewLifecycleOwner, androidx.lifecycle.Observer {
Log.d("###", "whattt")
})
}
}

ViewModel

class TestViewModel : ViewModel() {

private val myVariable = Log.d("###", "Test")

val testLiveData = MutableLiveData(false)
}

为什么我从 Fragment 和 ViewModel 获得最多三倍的日志输出?

D/###: Test
D/###: whattt
D/###: Test
D/###: Test
D/###: whattt
D/###: whattt

最佳答案

在 @tynn 发表评论后,我意识到问题可能来自于 fragment 实际参与之前发生的某些操作。长话短说:我有一个多模块项目:1 个应用程序模块、1 个数据模块和 1 个网络模块。网络模块和应用程序模块都在种植 Timber DebugTree...所以所有内容都被记录两次facepalm

我搜索了一下是否有好的方法可以在这方面保持模块独立。我唯一能找到的就是这个答案:

https://stackoverflow.com/a/53872754/990129

object TimberLogImplementation {

fun initLogging() {
if(Timber.treeCount() != 0) return
if (BuildConfig.DEBUG) Timber.plant(DebugTree())
else Timber.plant(ReleaseTree())
}

}

关于Android Timber 多次记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56718659/

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