用户Android工作室之间的通知

时间:2018-03-15 10:36:04

标签: android notifications

我正在开发一个小型的android项目,我需要有关通知的帮助。 因此,就像多个用户将使用相同的设备一样。

是否有可能在同一设备和没有数据库的用户之间交换通知?我的意思是,根据用户名和密码发送通知?

1 个答案:

答案 0 :(得分:0)

因此,您在离线应用上的同一设备上有多个用户。

首先需要实施登录系统来记录用户。因此,每次用户想要使用该应用程序时,他都必须登录。

然后,您希望用户能够在彼此之间交换通知。 因此,假设用户A向用户B发送通知。您只需将发件人作为用户A和接收者用户B存储通知。然后,当用户B登录时,检查是否存在他是接收者的存储通知并显示它对他来说。

使用本地数据库会更容易,但您可以使用共享首选项实现此目的。

你有两个对象:

  • 用户列表
  • 通知列表

您可以使用Gson将它们序列化为Json文件,以将它们存储为共享首选项中的String。

通知对象

public class Notification{

   public int senderId;

   public int receiverId;

   public String message;
}

用户

public class User{

  public int id;

  public String name;

  public String password;
}

登录时:

List<User> users; // All the users
List<Notification> notifications; // All the notifications
User user; // current user

for(Notification n : notifications){
   if (n.receiverId == user.id){
      displayNotification(n, users)
   }
}


private void displayNotification(Notification n, List<User> users){
   User sender = getUserFromId(n.senderId, users);

   // You can now display a notification like:
   // Sender <sender.name> wants to notifify you about <n.message>
}

private User getUserFromId(int id, List<User> users){
   for(User u : users){
      if (u.id == id)
         return u; 
   }
   return null;
}

序列化/反序列化列表:

List<Notification> notifications; 
Gson gson = new Gson;
// Serialise
String json = gson.toJson(notifications);

// Deserialise
notifications = gson.fromJson(json, new TypeToken<List<Notification>>(){}.getType());