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

单击状态栏中的通知消息后通知服务不工作

傅阿苏
2023-03-14

我参考了以下链接来研究Android中通知服务的演示示例:Sai Geetha博客和Vogella教程。

这两个项目都起到了作用,但都是部分的,也就是说,我已经按原样下载并执行了这两个项目。两者都有启动通知的按钮。单击按钮时,状态栏顶部会显示通知。

问题来了,点击该通知后,既不会显示任何消息,也不会激发浏览新活动的意图。

我对这个概念还不熟悉,所以非常感谢您的帮助。。。

创建通知。班

public class CreateNotification extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    public void createNotification(View view) {
        NotificationManager nm= (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        final int UNIQUE_ID = 123458;
        Intent navigationIntent = new Intent();
        navigationIntent.setClass(CreateNotification.this,
                NotificationReceiver.class);

        PendingIntent pi = PendingIntent.getActivity(this, 0, navigationIntent,
                0);
        String body = "New Notification added!!!";
        String title = "Title";
        Notification n = new Notification(R.drawable.ic_launcher, body,
                System.currentTimeMillis());
        n.number = 2;
        n.setLatestEventInfo(this, title, body, pi);
        n.defaults = Notification.DEFAULT_ALL;
        nm.notify(UNIQUE_ID, n);
    }
}

通知接收者。班

public class NotificationReceiver extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.result);
        Log.i("Receiver", "NotificationReceiver");
    }
}

主要的xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:onClick="createNotification"
        android:text="Create Notification" >
    </Button>

</LinearLayout>

后果xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="This is the result activity opened from the notification" >
    </TextView>

</LinearLayout>

共有1个答案

夹谷沛
2023-03-14

看看这个

   public static NotificationManager nm;
public static final int UNIQUE_ID = 123458;
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.newone);
    createNotification();

}
public void createNotification() {
    NotificationManager nm= (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    final int UNIQUE_ID = 123458;
    Intent navigationIntent = new Intent();
    navigationIntent.setClass(NEWAct.this,
            TestActivity.class);
    navigationIntent.putExtra("selected_tab", "more");

    PendingIntent pi = PendingIntent.getActivity(this, 0, navigationIntent,
            0);
    String body = "New Notification added!!!";
    String title = "Title";
    Notification n = new Notification(R.drawable.ic_launcher, body,
            System.currentTimeMillis());
    n.number = 2;
    n.setLatestEventInfo(this, title, body, pi);
    n.defaults = Notification.DEFAULT_ALL;
    nm.notify(UNIQUE_ID, n);
}

活动启动后,必须使用id(唯一id)取消该通知

              try {
        nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        nm.cancel(UNIQUE_ID);
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
 类似资料:
  • 我的通知包含几个按钮: 1个按钮启动主活动(执行此操作时应关闭状态栏) 其中4人发送待定意图以控制音乐(应保持状态栏打开) 问题是,第一个按钮没有关闭状态栏。。。 第一个按钮发送的Pending帐篷: 活动已正确启动,但状态栏仍在那里,不会自行关闭<我是不是错过了一面旗帜?我可以通过MyActivity程序关闭状态栏吗。onResume() 编辑:顺便说一下,通知是由服务推送的 感谢=)

  • 我目前遇到以下问题: 我已经实现了自定义FirebaseMessagingService,并且覆盖了方法onMessageReceived()。此外,当应用程序在后台时,我从getExtras()获取捆绑包 我需要通知内容,以便在db中本地保存 发生了什么: 当应用程序处于后台时,从Firebase控制台发送3个通知 创建了3个状态栏通知 单击其中一个- 你能帮忙吗? 启动器活动代码: 自定义Fi

  • 我浏览了Stackoverflow,发现有人问了这个问题,但我没有找到任何解决方案。 我有一个带有两个按钮的自定义通知。我想在按下通知按钮后关闭状态栏面板,但不知道如何关闭。如果我按下通知本身(也就是contentIntent),面板就会关闭,这也是我想要的按钮。 这是我的通知代码:

  • 点击通知按钮后如何关闭状态栏? 我试过了,但有个例外: 我的代码: 在NotificationIntent类

  • null 我已经尝试调用NotificationManager.Cancel()和NotificationManager.CancelAll()。并尝试引发相同的原始PRIORITY_LOW通知。但它们都将通知图标留在状态栏中。

  • 我想知道是否有一种方法,使通知弹出状态栏上方,像传统的祝酒词消息,当第一次收到。默认情况下,当收到通知时,通知标签会显示在状态栏中,并暂时隐藏其他通知图标(如果有的话),直到通知标签显示完毕。然后,通知图标通常被添加到等待用户交互的图标的水平列表中。我想要最初的接收报价只是上升到状态栏之上,然后添加图标与其余的他们。