我根本没有找到解决方案来共享活动之间的实时数据。我的第一个活动接收实时对象(键入double,一个随机数字)。我想将这些数字传递给第二个活动。这一切都有效,只有第二个Activity只显示一次数据。我必须通过回到第一个活动来刷新活动,只有第二个活动显示最新数据。我实现了一个Singelton模式:实时共享对象,singeltond模式
public class FirstActivity extends Activity{
public double xAxis;
public double yAxis;
public static FirstView instance;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.device_view);
handler = new Handler() {
@Override
public void handleMessage(Message msg) {
int data1 = msg.arg1;
xAxis = (double) data1;
dataX.setText(String.valueOf(xAxis));
int data2 = msg.arg2;
yAxis = (double) data2;
dataY.setText(String.valueOf(yAxis));
}
};
secondview.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent nextScreen = new Intent(getApplicationContext(),
SecondActivity.class);
startActivity(nextScreen);
}
});
}
public static void initInstance(){
if(instance == null)
{
instance = new FirstActivity();
}
}
public static FirstActivity getInstance(){
return instance;
}
}
SecondView类
public class SecondActivity extends Activity{
private double valueX;
private double valueY;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.linegraph);
valueX = FirstActivity.getInstance().xAxis;
valueY = FirstActivity.getInstance().yAxis;
}
}
应用类
package com.bluetoothcomm;
import android.app.Application;
public class MyApplication extends Application {
@Override
public void onCreate(){
super.onCreate();
initSingeltons();
}
public void initSingeltons(){
FirstActivity.initInstance();
}
}
我张贴在我的问题@Orabig – yadabadu
我还是不明白我的Singelton实施。您的数据如何“收到”(以及来自哪里)?您不会显示xAxis和yAxis更新的代码。如果它位于第一个活动中,则此代码无法在活动2中工作。 –
我从另一个类的输入流收到数据。这其他类使用处理程序来获取和sendMessage我的视图,调用FirstAcitvity和FirstActivity我想通过使用singelton与SecondActivity共享。事实上,xAxis和y在FirstActivity @Orabig – yadabadu