gpt4 book ai didi

android - 如何在收到通知时更改 textView 值?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:55:52 25 4
gpt4 key购买 nike

我正在尝试制作一个程序,当手机上出现通知时,TextView 的值会发生变化。

在我的 MainActivity 中我有一个方法:

private void changeText(){
TextView textNotificationView = (TextView) findViewById(R.id.textNotificationView);
textNotificationView.setText(R.string.textGotNotification);
}

每当收到通知时,我都想从 MainActivity 调用 changeText()。为此,我创建了一个名为 NotificationListener 的类,它扩展了 NotificationListenerService。

public class NotificationListener extends NotificationListenerService {


@Override
public IBinder onBind(Intent intent) {
return super.onBind(intent);
}

@Override
public void onNotificationPosted(StatusBarNotification sbn) {
//Change value of TextView
}

@Override
public void onNotificationRemoved(StatusBarNotification sbn){

}
}

基本上,我想在 onNotificationPosted(StatusBarNotification sbn) 方法中调用 changeText() 方法。

我应该怎么做?

最佳答案

我有一个解决方案,那就是使用 EventBus

首先,创建一个事件

public class NotificationPosted {
// empty if you don't need to pass data
}

其次,在MainActivity中注册这个事件

@Override
protected void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}


@Override
protected void onStop() {
EventBus.getDefault().unregister(this);
super.onStop();
}




@Subscribe(sticky = true, threadMode = ThreadMode.MAIN)
public void onEvent(NotificationPosted notificationPosted) {
changeText()
}

最后,在 NotificationListener 中发布您的事件

public void onNotificationPosted(StatusBarNotification sbn) {
EventBus.getDefault().post(new NotificationPosted());
}

关于android - 如何在收到通知时更改 textView 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50852482/

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