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做了這個功能,但沒有發生。我該怎麼做?

回答

0

您需要使用setContentIntent()將掛起的意圖添加到通知中。

另請參閱文檔Notification.contentIntent;尤其要注意的是,您需要在Intent上使用FLAG_ACTIVITY_NEW_TASK,並且確保您的MainActivity在AndroidManifest.xml中聲明,以便通知管理器(實際上是系統UI)可以看到它。

相關問題