Androidエッセイ:複数のActivity共有グローバル変数

2128 ワード

実現方法を直接見てみましょう~
まず、共有するグローバル変数を格納するためのactivityのメンバーとメソッドを新規作成します.たとえば、ここでMyDataActivityを新規作成します.
package com.anwensoft.cardvr.activity;
import android.app.Application;
 
public class MyDataActivity extends Application {
    private static byte send_buf[] = {(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00};
 
//    private static byte[] send_buf = new byte[4];
 
// 
    public void setBuf(byte data,byte location){
        this.send_buf[location] = data;
    }
 
// 
    public byte getBuf(byte location){
        return send_buf[location];
    }
 
// 
    public byte[] getWholeBuf(){
        return send_buf;
    }
}

そしてAndroidManifestでxmlに新しいクラスを追加(アプリケーションに)
".MyDataActivity">

これで、複数のActivityで同じデータにアクセスできます.
たとえば、MainActivityで次のように設定します.
public class MainActivity extends AppCompatActivity{
 
MyDataActivity Send_data;
 
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
 
    Send_data= (MyDataActivity)getApplicationContext();
    Send_data.setBuf((byte)0xA5,(byte)1);    //  0xA5;
    }
}

TestActivityで
public class TestActivity extends AppCompatActivity {
 
MyDataActivity Send_data;
 
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_test);
 
    Send_data= (MyDataActivity)getApplicationContext();
 
    byte num = Send_data.getBuf((byte)1);    // ,  0xA5;
    }
}

これにより,同一データを複数のActivityで共有することが可能となる.
転載先:https://juejin.im/post/5cdbd18fe51d453b5854b8c5