앱이 작동하지 않아도 새 메시지를받을 때 알림을 제공하는 안드로이드 응용 프로그램을 만들어야합니다. firebase 데이터베이스를 사용하고 있습니다. firebase datasnapshot에 대한 코드를 작성했지만 앱이 작동 할 때만 작동합니다. 앱이 작동하지 않는 경우이 코드를 실행해야합니다.알림을위한 끝없는 배경 서비스 만들기
Mref=new Firebase("https://iyutue-30s49.firebaseio.com/");
Mref.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
String value=dataSnapshot.getValue(String.class);
myDb.GetAllData();
String idd= String.valueOf(myDb.id);
if (value.equals(idd)==true){
NotificationCompat.Builder builder=new NotificationCompat.Builder(getApplicationContext());
builder.setSmallIcon(R.drawable.ic_tab_profile);
builder.setContentTitle("plaese").setContentText("jijo");
Intent intent =new Intent(getApplicationContext(),MainActivity.class);
TaskStackBuilder stackBuilder=TaskStackBuilder.create(getApplicationContext());
stackBuilder.addParentStack(MainActivity.this);
stackBuilder.addNextIntent(intent);
PendingIntent pendingIntent=stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(pendingIntent);
NotificationManager NM=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
NM.notify(0,builder.build());
}
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
나는 응용 프로그램도 작동하지 않는 경우 백그라운드에서이 코드를 실행 advnace
앱이 활성화되어 있지 않은 상태에서 연결을 유지하면 배터리가 심각하게 소모되어 사용자 환경에 해를 끼칠 수 있습니다. 대신 Firebase Cloud Messaging을 사용하여 앱을 열지 않은 사용자의 이벤트를 알리는 것이 좋습니다. –
@ FrankvanPuffelen하지만 여기서는 firebase를 사용합니다. 그러나 앱이 활성화되어 있지 않으면이 코드는 작동하지 않습니다. –
과 같은 기본 애플리케이션과 whatzaap과 같은 다른 주요 애플리케이션도 백그라운드 프로세스 및 서비스를 항상 실행합니다. 최선의 방법이 아닌가? –