在我的应用程序中,用户可以通过首选项屏幕决定是否显示通知。那么通知是有效的,但我会点击通知,我将能够在我的应用程序中输入。这是我的代码:
@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 :(得分:0)
您需要使用setContentIntent()
将待处理的意图添加到通知中。
另见Notification.contentIntent
的文件;特别注意你在Intent上需要FLAG_ACTIVITY_NEW_TASK
,并确保在AndroidManifest.xml
中声明你的MainActivity,以便通知管理器(实际上,系统UI)可以看到它。