Почему Eclipse не распознает метод build () из класса Notification.Builder, чтобы вернуть объект Notification?

Это мой код:


NotificationManager mNotificationManager = (NotificationManager) c.getSystemService(ns); //Instantiate the notification CharSequence tickerText = "Hello"; long when = System.currentTimeMillis(); Notification.Builder builder = new Notification.Builder(c) .setTicker(tickerText) .setWhen(when) .setContentTitle("Test Notification") .setContentText(arg1.getStringExtra("info")) .setSmallIcon(R.drawable.ic_launcher) .setAutoCancel(true); Notification notification = builder.getNotification(); mNotificationManager.notify(88, notification); 

Он работает, но использует Notification notification = builder.getNotification(); не рекомендуется. Как я должен делать Notification notification = builder.build(); , Проблема в том, что Eclipse не признает это как таковое, то есть он не позволит мне скомпилировать. Документ ясно, что build() существует и его предпочтительный метод, но он не работает на моем конце. Я хотел бы использовать не устаревший код, поэтому любая помощь будет высоко оценена.

импорт


 import android.app.Notification; import android.app.Notification.Builder; import android.app.NotificationManager; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; 

Имейте в виду, что import android.app.Notification.Builder; Говорит, что он не используется.

Если вы хотите разработать версию SDK ниже 11, вы можете использовать этот код вместо класса android.app.Notification.Builder для уведомления о создании:

 private void createNotification(){ NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.ic_launcher, "Hello", System.currentTimeMillis()); Intent notificationIntent = new Intent(this, YourActivity.class); Random r = new Random(); int notificationId = r.nextInt(); notificationIntent.putExtra("n_id", notificationId); PendingIntent contentIntent = PendingIntent.getActivity(this, notificationId, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); notification.defaults |= Notification.DEFAULT_SOUND; notification.setLatestEventInfo(this, "Party", "Welcome!", contentIntent); mNotificationManager.notify(notificationId, notification); } 

Вы можете отменить это уведомление в YourActivity следующим образом:

 public class YourActivity extends Activity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.your_activity); int notificationId = getIntent().getIntExtra("n_id", -1); if (notificationId!=-1) { NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); mNotificationManager.cancel(notificationId); } } } 

Это происходит только тогда, когда вы компилируете свой код приложения против версии, которая не содержит требуемого метода / api (в вашем случае это build() ).

Если сборка не доступна в версии, которую вы компилируете, я предлагаю вам скомпилировать ее с более высокой версией Android. У вас всегда есть минимальная версия sdk в манифесте для обратной совместимости.

благодаря