Android 如何在不启动整个应用程序的情况下更新自定义通知?

Android 如何在不启动整个应用程序的情况下更新自定义通知?,android,broadcastreceiver,android-notifications,custom-notification,Android,Broadcastreceiver,Android Notifications,Custom Notification,到目前为止,我已经能够在播放器开始播放时创建自定义通知,但问题是每当我单击通知按钮时,不仅停止媒体播放器按钮会将按钮更改为停止图标 但要做到这一点,我必须让整个应用程序死而复生,当用户点击停止按钮通知整个应用程序重新出现时,这有点烦人 我正在使用intent在MainActivty上进行调用,以停止播放机并更新播放机已停止的通知栏 似乎只有普通的通知示例,如显示简单信息和单击按钮时取消通知。拉扯我的头发5天,有人能帮我吗!求你了 PS:我不想使用MediaStyle通知。您可以在没有UI的情况下

到目前为止,我已经能够在播放器开始播放时创建自定义通知,但问题是每当我单击通知按钮时,不仅停止媒体播放器按钮会将按钮更改为停止图标

但要做到这一点,我必须让整个应用程序死而复生,当用户点击停止按钮通知整个应用程序重新出现时,这有点烦人

我正在使用intent在MainActivty上进行调用,以停止播放机并更新播放机已停止的通知栏

似乎只有普通的通知示例,如显示简单信息和单击按钮时取消通知。拉扯我的头发5天,有人能帮我吗!求你了


PS:我不想使用MediaStyle通知。

您可以在没有UI的情况下使用活动

public class NotificationActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
     //do your stuff
    finish();//end activity
}

public static PendingIntent getViewIntent(int id){
    Intent intent = new Intent(AppContext.context, NotificationActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);      
    return PendingIntent.getActivity(AppContext.context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
 }
}
在您的舱单中:

<activity
        android:name=".NotificationActivity"
        android:taskAffinity=""
        android:excludeFromRecents="true"
        android:theme="@android:style/Theme.NoDisplay">
    </activity>
要使用新图标更新通知,您必须使用所需图标重新创建自定义通知,并使用相同的通知id再次显示通知

NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

    int notificationID =100;// this ID has to be same as your previuos ID
    // mId allows you to update the notification later on.
    mNotificationManager.notify(notificationID, mBuilder.build());

那么你是说我应该为通知创建一个新的独立活动,而不是MainActivity?而
android:taskAffinity=“
为什么该属性为空?该属性表示活动希望属于哪个任务。因此,设置“”表示无效。很抱歉,忘记通知。您需要在停止/播放按钮上设置ResultPendingEvent。因此,单击它将打开通知活动。目前,单击整个通知将打开通知活动这有一种闪烁的问题,但不知何故,在第二次构建和gradle重新同步之后,它就消失了。编辑不,它只是重新露面!如果您有任何问题,请随时通知我:)
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

    int notificationID =100;// this ID has to be same as your previuos ID
    // mId allows you to update the notification later on.
    mNotificationManager.notify(notificationID, mBuilder.build());