0

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

但事情是要实现这一点,我必须让整个应用程序从死里复活,当用户单击通知中的停止按钮时,整个应用程序就会重新出现,这很烦人。

我正在使用意图对 MainActivty 进行调用,以停止播放器并更新播放器已停止的通知栏。

似乎只有普通的通知示例,例如显示简单信息和单击按钮时关闭通知。拉我的头发 5 天有人可以帮我解决这个问题!请 ?

PS:我不想使用 MediaStyle 通知。

4

1 回答 1

1

您可以在没有 UI 的情况下使用 Activity。

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>

在 NotificationBuilder 里面

 NotificationCompat.Builder mBuilder =  new NotificationCompat.Builder(AppContext.context);

 PendingIntent resultPendingIntent = NotificationActivity.getViewIntent(id);
    mBuilder.setContentIntent(resultPendingIntent);

要使用新图标更新通知,您必须使用所需图标重新创建自定义通知,并使用相同的通知 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());
于 2017-01-25T12:22:24.533 回答