0

在我的应用程序中,用户可以通过首选项屏幕决定是否显示通知。通知有效,但我希望点击通知我就可以在我的应用程序中输入。这是我的代码:

@SuppressLint("NewApi")
    private void checkPref(Intent intent){ 
            this.registerReceiver(this.batteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
            SharedPreferences myPref = PreferenceManager.getDefaultSharedPreferences(MainActivity.this); 
            boolean pref_opt1 = myPref.getBoolean("firstDependent", false); 
            int level= intent.getIntExtra(BatteryManager.EXTRA_LEVEL,-1);
            if (pref_opt1){
                NotificationManager notifi = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
                 Notification notification = new Notification.Builder(getApplicationContext())
                 .setContentTitle("Battery Informations")
                 .setContentText("Battery level"+" "+level+"%")
                 .setSmallIcon(R.drawable.icon_small_not)
                 //.setLargeIcon(aBitmap)
                 .setTicker(level+"%")
                 .build();

                 notification.flags = Notification.FLAG_ONGOING_EVENT;
                 Intent i = new Intent(MainActivity.this, MainActivity.class); 
                 PendingIntent penInt = PendingIntent.getActivity(getApplicationContext(), 0 , i , 0);
                 notifi.notify(215,notification);
                } else {
                NotificationManager notifi = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
                notifi.cancel(215);
                }
        }

我认为 PendingIntent 做了这个功能,但什么也没发生。我该怎么做?

4

1 回答 1

0

您需要使用 将待处理的意图添加到通知中setContentIntent()

另请参阅文档Notification.contentIntent;特别注意,您需要FLAG_ACTIVITY_NEW_TASK在 Intent 上,并确保您的 MainActivity 已在其中声明,AndroidManifest.xml以便通知管理器(实际上是系统 UI)可以看到它。

于 2013-07-12T18:46:30.720 回答