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