当应用程序运行android时,如何在通知区域中放置通知图标?

时间:2015-04-13 14:35:56

标签: android notifications statusbar

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

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);
    }
}

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

例如:电池已满时电池信息图标出现,它不会打开任何应用程序或活动,也不会点击通知区域将其删除。

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

将此一行代码更改为此

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

与通知或通知管理器无关 您可以通过将一行代码更改为此来实现,

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