Android 构造函数已弃用

Android 构造函数已弃用,android,Android,我制作了一个android应用程序,在java类的代码中,我得到了一些信息:构造函数Notificationint,CharSequence,long已被弃用。应用程序一切正常我尝试运行应用程序时没有问题。 我只是想知道为什么会出现这个消息。 我的java类中的代码是: public class Notifications extends Activity { @Override protected void onCreate(Bundle savedInstanceState

我制作了一个android应用程序,在java类的代码中,我得到了一些信息:构造函数Notificationint,CharSequence,long已被弃用。应用程序一切正常我尝试运行应用程序时没有问题。 我只是想知道为什么会出现这个消息。 我的java类中的代码是:

public class Notifications extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.notifications);

        Button b = (Button) findViewById(R.id.bNotifications);
        b.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
                Notification notify = new Notification(
                        android.R.drawable.stat_notify_more,
                        "This is important", System.currentTimeMillis());
                Context context = Notifications.this;
                CharSequence title = "You have been notified";
                CharSequence details = "Continue with what you have doing";
                Intent intent = new Intent();
                PendingIntent pending = PendingIntent.getActivity(context, 0,
                        intent, 0);
                notify.setLatestEventInfo(context, title, details, pending);
                nm.notify(0, notify);

            }
        });
    }

}
看看:

公共通知int图标,CharSequence tickerText,长时 在API级别1中添加

此构造函数在API级别11中被弃用。 改用

据我所知,这将是对Notification.Builder的相应调用:

如您所见,Notification.Builder在设置各种通知属性方面提供了更大的灵活性,并提高了代码可读性,这可能是Notification构造函数被弃用的原因。

请查看:

公共通知int图标,CharSequence tickerText,长时 在API级别1中添加

此构造函数在API级别11中被弃用。 改用

据我所知,这将是对Notification.Builder的相应调用:

如您所见,Notification.Builder在设置各种通知属性方面提供了更大的灵活性,并提高了代码可读性,这可能是不推荐使用通知构造函数的原因。

由于API级别11 Notificationint图标,CharSequence tickerText,由于存在替代方案,因此不再建议使用long when。改用Notification.Builder

来源:,java.lang.CharSequence,long

自API 11级Notificationint图标以来,CharSequence tickerText,long when不再建议使用,因为存在替代方法。改用Notification.Builder


Source:,java.lang.CharSequence,long

有时方法被弃用并不意味着您不需要它,也不意味着您不使用它。因此,毕竟,您需要支持较旧的设备,而不是像Android Donut或previous这样最旧的设备,您需要使用新的方式和不推荐的方式。在本例中,我实现了如下内容:

Notification notification;
String title = context.getString(R.string.app_name);
if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN){
   notification = new Notification(icon, message, when);
}else{
   notification = new Notification.Builder(context)
   .setContentTitle(title)
   .setContentText(message)
   .setSmallIcon(R.drawable.ic_launcher)
   .build();
}

希望能有帮助

有时一个方法被弃用并不意味着你不需要它,也不意味着你不使用它。因此,毕竟,您需要支持较旧的设备,而不是像Android Donut或previous这样最旧的设备,您需要使用新的方式和不推荐的方式。在本例中,我实现了如下内容:

Notification notification;
String title = context.getString(R.string.app_name);
if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN){
   notification = new Notification(icon, message, when);
}else{
   notification = new Notification.Builder(context)
   .setContentTitle(title)
   .setContentText(message)
   .setSmallIcon(R.drawable.ic_launcher)
   .build();
}

希望能有帮助

我想在一个项目中使用此代码,它应该兼容到API级别8。但是我看不到任何扩展可以使用它,因为它不在v4中package@Heinzi我找不到用于创建上下文的通知类。只有不带“s”的通知类,但上下文对象不会接受它。@MinNaingOo:用活动的类名替换通知。请参阅原始问题代码示例中的第一行。@MinNaingOo:是的,当然,除非您在内部类定义中,请注意原始问题11NeedNotificationCompat.BuilderI下的new View.OnClickListener{…}中的new View.OnClickListener{…}我希望在兼容到API级别8的项目中使用此代码。但是我看不到任何扩展可以使用它,因为它不在v4中package@Heinzi我找不到用于创建上下文的通知类。只有不带“s”的通知类,但上下文对象不会接受它。@MinNaingOo:用活动的类名替换通知。请参阅原始问题代码示例中的第一行。@MinNaingOo:是的,当然,除非您在内部类定义中,请注意11 need NotificationCompat.Builder下原始问题.API中的new View.OnClickListener{…}