如何在应用程序 运行 android 时将通知图标放在通知区域?

How can I put notification icon in notification area while app is running android?

我想在我的应用 运行ning 时将我的应用图标放在通知区域。我搜索了很多并使它成为可能,以便在通知区域显示它。

public class MainActivity extends ActionBarActivity {

    NotificationManager mNotificationManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Context context = getApplicationContext();
        NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
                .setTicker("This is a new notification")
                .setContentTitle("Notification")
                .setContentText("App runing..")
                .setSmallIcon(R.mipmap.ic_launcher);
        Intent intent = new Intent(context, MainActivity.class);
        PendingIntent pIntent = PendingIntent.getActivity(context, 0, intent, 0);
        builder.setContentIntent(pIntent);
        mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        Notification notif = builder.build();
        mNotificationManager.notify(1, notif);

    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
       mNotificationManager.cancel(1);
    }
}

但我想要的是我不想在点击通知时打开任何activity。

例如:电池充满后出现的电池信息图标,它不会打开任何应用程序或activity,点击它也不会将其从通知区域中删除。

PendingIntent pIntent = PendingIntent.getActivity(context, 0, intent, 0);

将这一行代码改成这样

PendingIntent pIntent = PendingIntent.getActivity(context, 0, null, 0);

它会像我想要的那样工作,但只有在模拟器上,当我 运行 这段代码在真实设备上时它会崩溃。

如何在我的应用程序中完成这个任务?如何在没有 IntentPendingIntent 的情况下放置通知图标?

您可以使用此代码,如答案中所述 here and here:

PendingIntent contentIntent = PendingIntent.getActivity(
    getApplicationContext(),
    0,
    new Intent(), // add this
    PendingIntent.FLAG_UPDATE_CURRENT);

这与通知或通知管理器无关 你可以通过改变你的一行代码来做到这一点,

PendingIntent pIntent = PendingIntent.getActivity(getApplicationContext(), 0, new Intent(), PendingIntent.FLAG_UPDATE_CURRENT);