有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在活动之间同时发送数据,同时不断更新数据

基本上,我从Firebase实时数据库接收外部传感器数据。我试图做的是将数据从我的主要活动同时发送到另一个活动

我尝试使用共享首选项,但它只在单击按钮后更新一次,我想要的是第二个活动应该接收主活动中正在更新的更改

主要活动代码:

 reff.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                String s1=dataSnapshot.child("sensor1").getValue().toString();
                String s2=dataSnapshot.child("sensor2").getValue().toString();
                et1.setText(s1);
                SharedPreferences.Editor editor=sp.edit();
                editor.putString("sensor1data",s1);
                editor.apply();

第二活动代码

   sp=getSharedPreferences("s",MODE_PRIVATE);

        cc=sp.getString("sensor1data","");
        tv.setText(cc);

并且SharedPreferences sp;在这两个活动中全局声明

我还尝试添加了一个侦听器,但由于没有可用的侦听器,因此每当使用这一行时都会出现错误:

sp.registerOnSharedPreferenceChangeListener(this);

以上行的错误:

registerOnSharedPreferenceChangeListener cannot be applied to (安卓.content.SharedPreferences.OnSharedPreferenceChangeListener) in **SharedPreferences** cannot be applied to (com.example.s1.MainActivity)

我也这样尝试过,但在第二行中也出现了一个错误,在第二行中它说无法解析符号sharedPreferenceChangeListener

    SharedPreferences spla=this.getSharedPreferences("s",MODE_PRIVATE);
spla.registerOnSharedPreferenceChangeListener(`sharedPreferenceChangeListener`);

SharedPreferences.OnSharedPreferenceChangeListener sharedPreferenceChangeListner =new SharedPreferences.OnSharedPreferenceChangeListener() {
    @Override
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {

    }
};

共 (1) 个答案

  1. # 1 楼答案

    what I want is that the second activity should receive the changes which are updating in the main activity.

    虽然有一些变通方法可以帮助您在获取数据的操作完成后将数据从一个活动发送到另一个活动,但最简单的解决方案是在第二个活动中直接附加侦听器。这样,Firebase服务器上发生的每个更改都会实时通知您