android - 从后台服务更改图像按钮的状态

标签 android service broadcastreceiver android-imagebutton

对于我的应用程序,您可以通过在 mainActivity 中按图像按钮来启动它的服务。按下 imageButton 会将其图像从红色按钮更改为绿色按钮,反之亦然,这也会停止服务。 将 imageButton 从红色(表示应用已关闭)和绿色(表示应用已打开)更改的唯一方法是按下按钮。

我没有创建的是一个广播接收器,它在接收时可以启动我的应用程序服务,而无需晚上进入应用程序并按下按钮。唯一的问题是我似乎无法将 imageButton(红色/关闭或绿色/打开)与服务状态同步。 当服务从广播接收器中的 onReceive 外部打开时,当我进入应用程序时它仍然是红色的。

我想把我的代码告诉你,但我很抱歉说它到处都是,而不是从哪里开始把它放在这里。抱歉,通常不会这样。 基本上我有一个带有 ImageButton 和广播接收器的 mainActivity。然后是服务类。任何想法如何同步两者?

我尝试使用 getter 和 setter,但它们似乎不起作用。 我需要在 onCreate、onResume 中更改 imageButton。它已经在广播接收器的 onReceive 中工作。

我在服务类中用来跟踪服务状态的变量似乎不会持续存在。我在顶部设置 false 然后当服务启动时我将它设置为 true,但是在 Activity 中每当我调用 Service.getMode() 它总是返回 false。 sharedPreferences 会成功吗?

如果有任何帮助,我将不胜感激,谢谢。

最佳答案

是的..sharedpreference 会起作用。

关于android - 从后台服务更改图像按钮的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37220930/

相关文章:

android - 从右到左布局支持导致 xml 编辑器中出现警告 lints

android - BroadcastReceiver启动Service时的顺序

java - Android 中如何在应用程序关闭时检查更新?

android - 是否可以将 BroadcastReceiver 转换为协程?

android - 如何在 Android 上安全地使用 Google Map API key ?

android - 使用 coordinatorlayout 折叠全屏 ImageView 并将其替换为带标题的 viewpager

java - Proguard 和错误

android:从服务通知用户

android - 广播接收器仅在 Activity 运行时才激活,否则停用

android - Pending Intent 请求代码可以为负数吗?