Android Studio: магазин push-уведомлений - PullRequest
0 голосов
/ 19 мая 2018

Здравствуйте. Я создал приложение для Android, которое получает автоматические push-уведомления и сохраняет их в основном упражнении ... В основном я храню уведомления в тексте редактирования только для тестирования, и оно работает ... Как я могу получить сообщенияв списке вместо текста для редактирования?и могу ли я создать таблицу и отобразить дату и время в столбце, а сообщение в другом столбце рядом с ним?

Мой код для хранения в тексте редактирования следующий:

        final FirebaseDatabase database = FirebaseDatabase.getInstance();
        final DatabaseReference myRef = database.getReference("Fall_Detection_Status");
        final DatabaseReference myRef1 = database.getReference("Fall_Detection_Status1");
        final DatabaseReference myRef2 = database.getReference("Seizure");


       myRef.addValueEventListener(new ValueEventListener() {

        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

                val = dataSnapshot.getValue(Long.class);

            if(val.longValue() == 1 && val1.longValue() == 1) {
                Date currentTime = Calendar.getInstance().getTime();
                writeToFile(currentTime.toString() + "\n" + " Fall Detected" + "\n", getApplicationContext());
                result.setText("");
                result.setText(readFromFile(getApplicationContext()));
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

       myRef1.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            val1 = dataSnapshot.getValue(Long.class);

            if(val.longValue() == 1 && val1.longValue() == 1) {
                Date currentTime = Calendar.getInstance().getTime();
                writeToFile(currentTime.toString() + "\n" + " Fall Detected" + "\n", getApplicationContext());
                result.setText("");
                result.setText(readFromFile(getApplicationContext()));
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

       myRef2.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            //Toast.makeText(getApplicationContext(),"This is a test!",Toast.LENGTH_LONG).show();

            val2 = dataSnapshot.getValue(Long.class);

            if(val2.longValue() == 1){
                Date currentTime = Calendar.getInstance().getTime();
                writeToFile(currentTime.toString() + "\n" + " Seizure Detected" + "\n", getApplicationContext());
                result.setText("");
                result.setText(readFromFile(getApplicationContext()));
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

        result.setText("");
        result.setText(readFromFile(getApplicationContext()));
        myRef.setValue(0);
        myRef1.setValue(0);
        myRef2.setValue(0);


private String readFromFile(Context context)
{
    StringBuilder total = new StringBuilder();

    BufferedReader r = null;
    try {
        r = new BufferedReader(new InputStreamReader(context.openFileInput("events.txt")));
        String line;
        while ((line = r.readLine()) != null) {
            total.append(line).append('\n');
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return total.toString();
}
private void writeToFile(String data,Context context) {
    try {
        OutputStreamWriter outputStreamWriter = new OutputStreamWriter(context.openFileOutput("events.txt", Context.MODE_APPEND));
        outputStreamWriter.append(data);
        outputStreamWriter.close();
    }
    catch (IOException e) {
        Log.e("Exception", "File write failed: " + e.toString());
    }
}

1 Ответ

0 голосов
/ 19 мая 2018

Возьмите значение push-уведомления в ArrayList и внедрите его в функцию утилизации.Уведомляйте адаптер утилизатора о появлении нового push-сообщения.

Пример реализации утилизатора

Просто прочитайте учебник по базе данных sqlLite для Android.

AndroidУчебное пособие по базам данных

...