构造通知去precated [英] The constructor notification is deprecated

查看:113
本文介绍了构造通知去precated的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我很新的Andr​​oid应用程序的开发。有了这么多的教程的帮助下,我创建了web视图,动作条和GCM的应用程序。一切工作正常。但我得到一个警告构造通知pcated德$ P $。我已经通过notification.builder了。但我不能修改我的codeS有新的通知Builder也随之诞生。有人可以帮助我.....

I am very new to android app development. With the help of so many tutorials, i created an app with webview, actionbar and GCM. Everything works fine. But i am getting a warning "The constructor notification is deprecated". I have gone through notification.builder. but i am not able to modify my codes with new notification buider. Can someone help me.....

public class GCMIntentService extends GCMBaseIntentService {

private static final String TAG = "GCMIntentService";

public GCMIntentService() {
    super(SENDER_ID);
}

/**
 * Method called on device registered
 **/
@Override
protected void onRegistered(Context context, String registrationId) {
    Log.i(TAG, "Device registered: regId = " + registrationId);
    displayMessage(context, "Your device registred with GCM");
    Log.d("NAME"," "+ MainActivity.name);
    ServerUtilities.register(context, MainActivity.name, MainActivity.email, MainActivity.AndroidVersion, MainActivity.AndroidID, MainActivity.manufacturer, MainActivity.model, registrationId);
}

/**
 * Method called on device un registred
 * */
@Override
protected void onUnregistered(Context context, String registrationId) {
    Log.i(TAG, "Device unregistered");
    displayMessage(context, getString(R.string.gcm_unregistered));
    ServerUtilities.unregister(context, registrationId);
}

/**
 * Method called on Receiving a new message
 * */
@Override
protected void onMessage(Context context, Intent intent) {
    Log.i(TAG, "Received message");
    String message = intent.getExtras().getString("price");

    displayMessage(context, message);
    // notifies user
    generateNotification(context, message);
}

/**
 * Method called on receiving a deleted message
 * */
@Override
protected void onDeletedMessages(Context context, int total) {
    Log.i(TAG, "Received deleted messages notification");
    String message = getString(R.string.gcm_deleted, total);
    displayMessage(context, message);
    // notifies user
    generateNotification(context, message);
}

/**
 * Method called on Error
 * */
@Override
public void onError(Context context, String errorId) {
    Log.i(TAG, "Received error: " + errorId);
    displayMessage(context, getString(R.string.gcm_error, errorId));
}

@Override
protected boolean onRecoverableError(Context context, String errorId) {
    // log message
    Log.i(TAG, "Received recoverable error: " + errorId);
    displayMessage(context, getString(R.string.gcm_recoverable_error,
            errorId));
    return super.onRecoverableError(context, errorId);
}

/**
 * Issues a notification to inform the user that server has sent a message.
 */
private static void generateNotification(Context context, String message) {
    int icon = R.drawable.ic_launcher;
    long when = System.currentTimeMillis();
    NotificationManager notificationManager = (NotificationManager)
            context.getSystemService(Context.NOTIFICATION_SERVICE);
    Notification notification = new Notification(icon, message, when);

    String title = context.getString(R.string.app_name);

    Intent notificationIntent = new Intent(context, MainActivity.class);
    // set intent so it does not start a new activity
    notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
            Intent.FLAG_ACTIVITY_SINGLE_TOP);
    PendingIntent intent =
            PendingIntent.getActivity(context, 0, notificationIntent, 0);
    notification.setLatestEventInfo(context, title, message, intent);
    notification.flags |= Notification.FLAG_AUTO_CANCEL;

    // Play default notification sound
    notification.defaults |= Notification.DEFAULT_SOUND;

    //notification.sound = Uri.parse("android.resource://" + context.getPackageName() + "your_sound_file_name.mp3");

    // Vibrate if vibrate is enabled
    notification.defaults |= Notification.DEFAULT_VIBRATE;
    notificationManager.notify(0, notification);      

}

}

* 的*清单sdkversion 8至18

**Manifest sdkversion 8 to 18

推荐答案

您正在尝试使用的构造是德precated为API 11这意味着它的通知是不支持任何更长,不应该使用。使用Notification.Builder代替<一个href="https://developer.android.com/reference/android/app/Notification.Builder.html">https://developer.android.com/reference/android/app/Notification.Builder.html

You're attempting to use the constructor for Notification which is deprecated as of API 11. Meaning it isn't supported any longer and should not be used. use Notification.Builder instead https://developer.android.com/reference/android/app/Notification.Builder.html

 Notification noti = new Notification.Builder(mContext)
     .setContentTitle("New mail from " + sender.toString())
     .setContentText(subject)
     .setSmallIcon(R.drawable.new_mail)
     .setLargeIcon(aBitmap)
     .build();

您目前有以下几种:

Notification notification = new Notification(icon, message, when);

此构造方法是去precated赞成Notification.Builder的他们看起来就会像下面这样:

This constructor is deprecated in favor of the Notification.Builder which would look like the following :

Notification notification = new Notification.Builder(context)
    .setContentText(message)
    .setSmallIcon(icon)
    .setWhen(when)
    .build();

这篇关于构造通知去precated的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆