アクティビティ間でリアルタイム データを共有するソリューションが見つかりませんでした。私の最初のアクティビティは、リアルタイム オブジェクト (タイプ double、乱数) を受け取ります。そして、この数字を 2 番目のアクティビティに渡したいと思います。それはすべて機能し、2番目のアクティビティのみがデータを1回だけ表示します。最初のアクティビティに戻ってアクティビティを更新する必要があり、それから 2 番目のアクティビティに最新のデータが表示されます。Singelton パターンを実装しました。
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();
}
}