当前位置: 首页 > 知识库问答 >
问题:

android-firebase childEventListener在服务中

楚权
2023-03-14
<service android:name=".ChildEventListener"/>
public class ChildEventListener extends Service {

FirebaseAuth auth;
NotificationCompat.Builder builder;

@Nullable
@Override
public IBinder onBind(Intent intent) {
    return null;
}

@Override
public int onStartCommand(Intent intent,  int flags, int startId) {
    retrivemsg();
    return START_STICKY;
}

public void retrivemsg()
{
    DatabaseReference mdb= FirebaseDatabase.getInstance().getReference("messages/"+auth.getCurrentUser().getUid());
    builder=new NotificationCompat.Builder(this,"onchildadded");
    mdb.addChildEventListener(new com.google.firebase.database.ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {

            String msg=dataSnapshot.child("msg").getKey();
            builder.setSmallIcon(R.drawable.send);
            builder.setContentTitle("child added");
            builder.setContentText(msg);
            NotificationManager notificationManager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
            notificationManager.notify(1,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(DatabaseError databaseError) {

        }
    });
}

共有1个答案

茅星华
2023-03-14

实际上,我们可以在舱单FIE开始一项服务。但是在我的例子中,我的错误是我没有在我真正想要启动的地方添加start service语句。所以只要加上

startService(new Intent(this, ChildEventListener.class));

我有一门课,我想开始它。解决了我的问题。

-Thanx@merterpam,谢谢你指出我的错误

 类似资料:
  • 问题内容: 在这里,我尝试了简单的服务程序。启动服务可以正常工作并生成Toast,但停止服务则不能。此简单服务的代码如下: 调用此服务的活动的代码如下: 使用该停止按钮帮助我停止服务,该按钮在onDestroy()方法中生成吐司。我已经在这里看到了很多有关停止服务问题的帖子,但并不令人满意,因此发布了新问题。希望得到满意的答复。 问题答案: 是错误的名字 您是否仅在此问题或代码中犯了错误?

  • 问题内容: 我需要使用Java在Android中创建计划服务。我已经尝试了一些代码,但是在构建应用程序后一直无法运行。我的逻辑很简单,我想提供一个服务来检查蓝牙文件夹路径中文件的存在,如果该文件存在,那么该服务将运行另一个应用程序,我需要它每2分钟运行一次。 到现在为止还不错,但是现在我有一个错误。我已经尝试过此代码… 有人可以帮我这个忙。 问题答案: 有两种方法可以满足您的要求。 计时器任务 警

  • 问题内容: 我需要在Android设备中致电Soap Web服务。我已经在其他页面上阅读了很多文章,观看了视频…但是我尝试了所有方法,但是我无法使其在我的android设备上正常工作,也无法在模拟器上进行测试,因为我的计算机无法处理其中任何一个,所以我不知道错误是否在代码上,或者这是否是我的android设备的问题。 布局xml只是一个EditText,一个Button和一个TextView。 在

  • 问题内容: 我是Android开发的新手,我有一个用php制作的Web服务,现在我想在android中使用它,任何人都可以指导我如何实现这一目标。 我已经在网上尝试了许多代码示例,但未能实现此目标。我在ADT中使用Eclipse。 任何帮助都会得到应用。 问题答案: 请通过以下链接。您将在此处找到代码示例 http://www.anddev.org/calling_a_web_service_fr

  • 我有一个后端服务器,它将事件作为服务器发送的事件发送给客户端。我还没有找到一个好的库来在Android上处理这项技术,所以我一直在使用一种回退方法,定期检查服务器(通过访问事件endpoint)中的新事件。 后台服务每10秒执行一次。不用说,这不是最好的方法。如果没有任何开源库可用于此场景,那么在内存使用和电池消耗方面,定期检查服务器后端是否有新事件的最佳方法是什么?与在Android中管理开放式

  • 问题内容: 我已经到了秃顶几步之遥… 我正在尝试运行一项服务,该服务将检查我工作中的服务器是否正在运行。应该每5分钟执行一次。 我经历过TimerTask,ScheduledExecutorService,最后是Handler。他们都工作了好几个小时,除了一些不准确的地方外,还有1-5分钟的时间,然后突然,“计时器”就停止了发射。 现在,我已经了解到,如果Scheduler遇到未捕获的异常,它将停