gpt4 book ai didi

java - 如何在运行更新 View 的后台服务时访问 Activity 的 View 对象

转载 作者:行者123 更新时间:2023-12-01 17:45:28 24 4
gpt4 key购买 nike

我有一个具有互联网连接服务的 Android 应用程序。每当应用程序上线或离线时,该服务都会显示一个 snackbar 。这些服务工作正常,但是当访问 MainActivity 的 snackbar 或我将在其上显示 snackbar 的相对布局时,我得到空值。下面是后台服务回调的实现,该方法写在mainactivity中:

  public void hasInternetConnection() {
if (!hasInternetMessageShown) {
showSnackBar("App is online", false);
}
}
private void showSnackBar(String message, boolean shouldStick) {
if (snack != null && snack.isShown()) {
snack.dismiss();
}
snack = Snackbar.make(rootView, message, Snackbar.LENGTH_SHORT);
snack.getView().setBackgroundColor(activity.getResources().getColor(R.color.blue_light));
TextView textView = snack.getView().findViewById(android.support.design.R.id.snackbar_text);
textView.setTextColor(activity.getResources().getColor(R.color.orange));
Typeface typeface = ResourcesCompat.getFont(activity, R.font.semibold);
textView.setTypeface(typeface, Typeface.NORMAL);
if (shouldStick)
snack.setDuration(BaseTransientBottomBar.LENGTH_INDEFINITE);
snack.show();
}

只有当我将零食和 Activity 的实例保持静态时,上述代码才有效。我不想这样做,因为它会触发内存泄漏。请在这里帮助我,以便我能够有效地处理这个问题。

谢谢!!

最佳答案

请尝试通过您的服务发送有关 Activity 的本地广播,然后尝试更新您的 snackbar 。

关于java - 如何在运行更新 View 的后台服务时访问 Activity 的 View 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55877870/

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