通知未在Android上显示

时间:2015-09-24 19:58:07

标签: android android-notifications

我正在构建一个简单的应用程序,其目的是在应用程序启动后立即显示通知。

按照Android的文档描述的步骤,我编写了一个名为createNotification的方法,用于设置通知,并将对该方法的调用插入onCreate方法,即我想,在推出应用程序后不久就打了个电话。

尽管如此,启动应用程序时不会显示任何通知。我想知道代码有什么问题。

public class MainActivity extends ActionBarActivity {
    // ...

    protected void onCreate(Bundle savedInstanceState) {
        // ...

        createNotification();
    }

    private void createNotification() {

        NotificationCompat.Builder builder =
                new NotificationCompat.Builder(this)
        .setContentTitle("My notification")
        .setContentText("Hello World!")
        .setAutoCancel(true)
        .setWhen(System.currentTimeMillis())
        .setVisibility(Notification.VISIBILITY_PUBLIC); 

        Intent resultIntent = new Intent(this, MainActivity.class);

        PendingIntent resultPendingIntent = 
                PendingIntent.getActivity(this, 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT);

        builder.setContentIntent(resultPendingIntent);

        ((NotificationManager) getSystemService(NOTIFICATION_SERVICE)).notify(1, builder.build());

    }

}

1 个答案:

答案 0 :(得分:3)

请参阅the docs

  

必填通知内容

     

通知对象必须包含以下内容:

     
      
  • 由setSmallIcon()
  • 设置的小图标   
  • 标题,由setContentTitle()
  • 设置   
  • 详细文本,由setContentText()
  • 设置   

如果添加一个smallIcon,例如android.R.drawable.ic_dialog_alert,它将起作用(我刚刚测试过)。你当然也可以添加一个你自己的图标,但我使用它是因为它是一个内置的例子很容易。

所以喜欢这个

NotificationCompat.Builder builder =
        new NotificationCompat.Builder(this)
                .setContentTitle("My notification")
                .setContentText("Hello World!")
                .setAutoCancel(true)
                .setSmallIcon(android.R.drawable.ic_dialog_alert) // Add this line
                .setWhen(System.currentTimeMillis())
                .setVisibility(Notification.VISIBILITY_PUBLIC);

我必须说,当你不添加一个smallIcon时,我发现它没有显示任何错误或任何错误。