在多用户应用中存储首选项

时间:2018-08-09 17:41:07

标签: android sharedpreferences

我正在开发一个android应用程序。它有两种类型的用户,教师和学生。我希望使用“共享首选项”在两个用户之间进行通信。

基本上,我有一个教学屏幕,上面有四个带有不同消息的TextViews。切换值为1(默认值)时,TextView文本设置为“”。

在学生屏幕上,它们具有4个按钮。按下每个按钮后,切换值将更改为0,然后该消息将显示在教师视图中。当我以学生身份登录时,单击该按钮,然后以教师身份登录时,此方法有效。但是,我希望它可以在两种不同的设备上运行,以便当学生单击按钮时,老师可以看到消息。

以下是一些代码段:

首先,学生活动:

Assistance.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                toggleAssistance(view);
            }
        });



public void toggleAssistance(View view){
        SharedPreferences sharedPreferences = getSharedPreferences("requestToggles", Context.MODE_PRIVATE);

        SharedPreferences.Editor editor = sharedPreferences.edit();

        editor.putInt("assistanceToggle", 0);
        editor.apply();
    }

其次,老师的活动:

asstToggle = sharedPreferences.getInt("assistanceToggle", 1);


if(asstToggle==1){
            Assistance.setText("");
            clearAssistance.setVisibility(View.GONE);
        }

清除协助只是一个按钮,基本上执行toggleAssistance的相反操作(它将值设置为1)。不显示消息时无需显示此按钮。

任何人都可以就如何在设备之间进行这项工作提供帮助或建议吗?谢谢!

2 个答案:

答案 0 :(得分:1)

否,您不能使用共享的首选项在设备之间进行通信,您的首选项值存储在设备本地。您应该使用Firebase之类的远程数据存储系统来实现一种解决方案,其中两个不同的设备相互交互。

答案 1 :(得分:0)

在真实的专业世界中,您在android环境中开发的内容被视为前端。

要在2个用户(2个不同的android环境/机器)之间创建通信,您需要一个后端环境。

如果要存储可由不同机器的2个或更多android用户访问的数据,则需要将数据存储在“后端”中。目前最流行的数据库系统是MySQL。