Создай регистраций и базу данных  SQLITE для пользователей , у меня есть эти классы : package com.example.myapp_2;

class User {
    private String name;
    private String email;

    public User(String name, String email) {
        this.name = name;
        this.email = email;
    }

    public String getName() {
        return name;
    }

    public String getEmail() {
        return email;
    }
}

package com.example.myapp_2;

import com.example.myapp_2.List_1.Product;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

public class Shop {
    private List<User> userList = new ArrayList<>(); // список пользователей, подписанных на обновления

    public Future<Void> updatePricesAndNotifyUsers() {
        ExecutorService executorService = Executors.newFixedThreadPool(2); // создаем исполнительный сервис с двумя потоками
        userList = getUsersSubscribedForUpdates(); // получаем список пользователей, подписанных на обновления
        Future<Void> future = executorService.submit(new Callable<Void>() { // создаем новую задачу и отправляем ее на выполнение
            @Override
            public Void call() throws Exception {
                updatePrices(); // обновляем цены на продукты
                for (User user : userList) {
                    sendPushNotification(user); // отправляем push-уведомления каждому пользователю
                }
                return null; // возвращаем null, потому что методы updatePrices() и sendPushNotification() ничего не возвращают
            }
        });
        executorService.shutdown(); // останавливаем исполнительный сервис после выполнения задачи
        return future; // возвращаем объект типа Future для отслеживания статуса выполнения задачи
    }

    private List<User> getUsersSubscribedForUpdates() {
        List<User> userList = new ArrayList<>();
    // здесь мы получаем список всех пользователей, подписанных на обновления и добавляем их в список userList
    // Например, так:
        User user1 = new User("John", "john@email.com");
        User user2 = new User("Jane", "jane@email.com");
        userList.add(user1);
        userList.add(user2);
        return userList;
    }

    private void updatePrices() {
    // здесь мы обновляем цены на продукты
    // Например, так:
        Product product1 = new Product("Product 1", "Description 1", R.drawable.food_3_1jpg, 0.0f);
        Product product2 = new Product("Product 1", "Description 1", R.drawable.food_3_1jpg, 0.0f);
        product1.setPrice(12);
        product2.setPrice(17);
    }

    private void sendPushNotification(User user) {
    // здесь мы отправляем push-уведомление пользователю
    // Например, так:
        PushNotificationService.pushNotification(user.getEmail(), "Price update!", "Check out the new prices!");
    }
}package com.example.myapp_2.List_1;

public class Product {
    private String name;
    private String description;
    private int imageResource;
    private float rating;
    private double price;

    public Product(String name, String description, int imageResource, float rating, double price) {
        this.name = name;
        this.description = description;
        this.imageResource = imageResource;
        this.rating = rating;
        this.price = price;
    }

    public Product(String name, String description, int imageResource, double price) {
        this.name = name;
        this.description = description;
        this.imageResource = imageResource;
        this.rating = 0.0f;
        this.price = price;
    }

    public String getName() {
        return name;
    }

    public String getDescription() {
        return description;
    }

    public int getImageResource() {
        return imageResource;
    }

    public float getRating() {
        return rating;
    }

    public void setRating(float rating) {
        this.rating = rating;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }
}