gpt4 book ai didi

android - Application中全局变量的变化如何通知Activity?

转载 作者:太空宇宙 更新时间:2023-11-03 11:40:48 25 4
gpt4 key购买 nike

我有一个 IntentService 可以更新扩展应用程序类中的全局变量。在我的几个 Activity 中,我需要知道变量何时更改。我是否必须在我的所有 Activity 中实现 BroadcastReceiver(并从我的服务发送一个 intent)或者是否有更简单的方法来通知我的 Activity?

谢谢!

最佳答案

我也遇到过这种问题。解决方案之一中的广播接收器。但我对此并不满意。所以,我尝试了另一种方法。您可以在 andrdoid 的对象观察者模式中找到更多详细信息,refer this link .

public class TestActivity extends Activity implements Observer {
BaseApp myBase;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

myBase = (BaseApp) getApplication();
myBase.getObserver().addObserver(this);
myBase.getObserver().setValue(10);

}

@Override
public void update(Observable observable, Object data) {
// This method is notified after data changes.

Toast.makeText(this, "I am notified" + myBase.getObserver().getValue(),
0).show();
}
}



public class Test extends Observable
{

private int value=2;

/**
* @return the value
*/
public int getValue()
{
return value;
}

/**
* @param value
* the value to set
*/
public void setValue(int value)
{
this.value = value;
setChanged();
notifyObservers();
}
}

package app.tabsample;

import android.app.Application;

public class BaseApp extends Application {
Test mTest;

@Override
public void onCreate() {
super.onCreate();

mTest = new Test();
}

public Test getObserver() {
return mTest;
}

}

关于android - Application中全局变量的变化如何通知Activity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10022950/

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