1
我有4项活动。在每项活动中,我每分钟都会使用一个计时器加载数据。现在我在4个活动中使用4个计时器。现在我想要的是,控制从一个计时器加载的所有4个活动数据是否可行?如果possile意味着举一个例子。Android:无法通过单个计时器来控制2+活动数据加载
感谢....
我有4项活动。在每项活动中,我每分钟都会使用一个计时器加载数据。现在我在4个活动中使用4个计时器。现在我想要的是,控制从一个计时器加载的所有4个活动数据是否可行?如果possile意味着举一个例子。Android:无法通过单个计时器来控制2+活动数据加载
感谢....
是的,你可以做到这一点的背景和将更新推到你的活动或者通过直接更新GUI或植入Observer模式。
我现在有一个完全可行的例子,可以帮助你。可以先建立一个可观察类,像这样:
public class MyObservable extends Observable {
int n = 0;
public void setValue(int n) {
setChanged();
notifyObservers(n);
}
public int getValue()
{
return n;
}
}
,并创建一个任务,你必须改正参数你的,我只是懒惰:)
public class MyTask extends AsyncTask
{
MyObservable observable;
int numberOfNotifications = 0;
@Override
protected Object doInBackground(Object... params) {
try {
this.observable = (MyObservable) params[0];
while (true) {
numberOfNotifications++;
int timeSinceLastUpdate = 1000*5;
Thread.sleep(timeSinceLastUpdate);
publishProgress(numberOfNotifications);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onProgressUpdate(Object... values) {
observable.setValue((Integer) values[0]);
}
}
然后你可以扩展应用类,并有启动线程:
public class StackApplication extends Application {
private static MyObservable myObservable;
@Override
public void onCreate() {
super.onCreate();
myObservable = new MyObservable();
new MyTask().execute(myObservable);
}
public static MyObservable getObservable() {
return myObservable;
}
}
这里有一点要注意的是singelton模式,以确保您只能获得可观察到的一个实例。 然后,它的一块蛋糕,以实现您的相关活动的观察报:
public class FirstActivity extends Activity implements Observer {
TextView tvCounter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tvCounter = (TextView) findViewById(R.id.hello);
StackApplication.getObservable().addObserver(this);
}
@Override
public void update(Observable observable, Object data) {
int i = (Integer) data;
tvCounter.setText(Integer.toString(i));
}
}
这应该工作,如果你不会在其他活动使用这种模式只记得添加的观察和覆盖更新方法。请评论,如果你得到它的工作或使用这个例子有一些问题。
但在这里,一个计时器可以控制4个活动。我的意思是,所有4个活动的普通定时器加载数据 – 2012-03-19 13:50:29
是的,你可以在4个活动中实现Observer,或直接更新4个活动。我会去观察员我的自我需要一个例子吗? – DNRN 2012-03-19 13:56:50
雅我想要一个示例来正确实施...非常感谢 – 2012-03-19 14:14:38