私がやっていることは、(Firebaseを使用して)Androidアプリケーションに通知を送信するときにSQLiteテーブルに通知メッセージを保存して、ユーザーがListViewで通知を確認できるようにすることです。SQLiteにすべてのデータが保存されていない
問題は、アプリケーションがフォアグラウンドにあるときだけ通知テキストを保存することです。そうでないと、電話は通知を受信しますが、保存しません。名前のクラスで
私のデータベース作成:DBController
public DBContoller(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, "cloudmessaging.db", factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE Messages(MSG TEXT,created_at DATETIME DEFAULT CURRENT_TIMESTAMP);");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS Messages");
}
ContentValues cv;
//add
public void add(String MSG){
cv=new ContentValues();
cv.put("MSG",MSG);
this.getWritableDatabase().insertOrThrow("Messages", "", cv);
}
public void selectAll(List lst){
Cursor cursor= this.getReadableDatabase().rawQuery("SELECT * FROM Messages order by created_at DESC ",null);
lst.clear();
while(cursor.moveToNext()){
lst.add("Message : "+cursor.getString(0)+" - ["+cursor.getString(1)+" ]");
}
}
私は通知メッセージ保存方法:
NotificationCompat.Builder notifBuilder=new NotificationCompat.Builder(getApplicationContext())
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle("Gi2017 :)")
.setContentText(body)
.setAutoCancel(true)
.setSound(notifsound)
.setContentIntent(pendingintent);
NotificationManager notifManager=(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notifManager.notify(0/*notification ID*/,notifBuilder.build());
try{
DBContoller db=new DBContoller(getApplicationContext(),"",null,1);
db.add(body);
}catch(Exception e){Log.d("error DB",e.getMessage());}
私が保存されたショーどのメッセージ:
DBContoller db;
ListView lstAfficher;
db=new DBContoller(getApplicationContext(),"",null,1);
lstAfficher = (ListView) findViewById(R.id.listView);
List<String> lst = new ArrayList<String>();
db.selectAll(lst);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(),R.layout.listlayout,lst);
lstAfficher.setAdapter(adapter);
「エラーDB」というログカテーテルメッセージが表示されますか? – Karakuri
送信しているサンプルのペイロードを投稿できますか? :) –
@Karakuri no errors – CrazyDeveloper