我必须创建一个android应用程序,当接收到新消息时发出通知,即使应用程序不工作。我正在使用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云消息传递功能在用户没有打开应用程序时通知用户。 –
@FrankvanPuffelen但在这里我使用firebase,但这个代码不工作,如果应用程序不活跃如何写这种服务类型提前感谢 –
但其他主要应用程序,如whatzaap也运行后台进程和服务总是..是不是最好的方法? –