如何避免 `getNotification` 被弃用?

How to avoid `getNotification` deprecated?

我正在制作闹钟应用程序,并且在 MyAlarmService 中有以下代码。

public class MyAlarmService extends Service
{
    private NotificationManager mManager;

    @Override
    public IBinder onBind(Intent arg0)
    {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public void onCreate()
    {
        // TODO Auto-generated method stub
        super.onCreate();
    }

    @SuppressWarnings("static-access")
    @Override
    public int onStartCommand(Intent intent, int flags, int startId)
    {
        mManager = (NotificationManager) this.getApplicationContext().getSystemService(this.getApplicationContext().NOTIFICATION_SERVICE);
        Notification.Builder notification = new Notification.Builder(MyAlarmService.this);
        Intent intent1 = new Intent(this.getApplicationContext(),ReminderPage.class);
        PendingIntent pendingNotificationIntent = PendingIntent.getActivity( this.getApplicationContext(),0, intent1,0);
        notification.setSmallIcon(R.drawable. notification_template_icon_bg)
                .setContentTitle("Music player")
                .setContentIntent(pendingNotificationIntent);
        NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        Notification notification1 = notification.getNotification();
        notificationManager.notify(R.drawable.notification_template_icon_bg, notification1);
        mManager.notify(0, notification1);
        return super.onStartCommand(intent,flags, startId);
    }

    @Override
    public void onDestroy()
    {
        // TODO Auto-generated method stub
        super.onDestroy();
    }
  1. 在onStart方法中,它总是有一个删除线。谷歌搜索后,我将 onStart 方法更改为 onStartCommand(),但不确定这是不是正确的修改方法。
  2. getNotification 已弃用。

AndroidMainfest

 <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="10" />

谢谢。

你能试试这个吗,

NotificationCompat.Builder builder = new NotificationCompat.Builder(
                context);
        notification = builder.setContentIntent(intent)
                .setSmallIcon(R.drawable.push_icon).setTicker(title).setWhen(when)
                .setAutoCancel(true).setContentTitle(title)
                .setContentText(message).build();
        notificationManager.notify(requestID, notification);

您将通知生成器命名为 'notification'。 所以你应该简单地将 notification.getNotification() 替换为 notification.build().

就是这样。官方文档中的解释:https://developer.android.com/reference/android/app/Notification.Builder#getNotification()