android中的通知在点击时具有相同的意图。我在安装主题后发送通知。考虑我安装了 4 个主题和 4 个通知出现在通知窗口中,但是当我单击每个通知时,它会启动特定的活动,但每个意图的意图具有相同的数据。
我的代码是这样的
@SuppressWarnings("deprecation")
void sendInstalledNotification(String fileName, String packageName) {
NotificationManager notificationManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
String name = "";
try {
name += fileName.substring(fileName.lastIndexOf(".") + 1);
} catch (Exception e) {
Log.e("NewThemeChooser", "Invalid Package name");
e.printStackTrace();
}
name += " Installed";
Notification notification = new Notification(R.drawable.ic_launcher_9, name , System.currentTimeMillis());
Intent intent = new Intent(mContext , ThemeInfo.class);
Bundle bundle = new Bundle();
bundle.putString("apkid", packageName);
bundle.putBoolean("isApplied", false);
intent.putExtra("bundle", bundle);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, intent, 0);
notification.setLatestEventInfo(mContext, name, "Click to Apply Theme", pendingIntent);
notification.flags = Notification.FLAG_AUTO_CANCEL;
Log.d("NewThemeChooser__:ThemeChangeReceiver" , "hascode : " + packageName.hashCode() + " installed " + packageName);
notificationManager.notify(packageName.hashCode(), notification);
}
我在 ThemeInfo 活动的 onCreate 中将意图数据打印为
Bundle bundle = getIntent().getBundleExtra("bundle");
apkid = bundle.getString("apkid");
isApplied = bundle.getBoolean("isApplied", false);
System.out.println("NewThemeChooser__:bundle apkid " + apkid );
我在日志中得到的结果是
D/NewThemeChooser__:ThemeChangeReceiver( 4423): hascode : -186637114 installed com.test.theme.MiCrease
D/NewThemeChooser__:ThemeChangeReceiver( 4423): hascode : 2106806482 installed com.test.theme.iPhone
D/NewThemeChooser__:ThemeChangeReceiver( 4423): hascode : -1413669305 installed com.test.theme.Simpsons
D/NewThemeChooser__:ThemeChangeReceiver( 4423): hascode : -2146296452 installed com.test.theme.AnnaTheme
I/System.out( 4423): NewThemeChooser__:bundle apkid com.test.theme.MiCrease
I/System.out( 4423): NewThemeChooser__:bundle apkid com.test.theme.MiCrease
I/System.out( 4423): NewThemeChooser__:bundle apkid com.test.theme.MiCrease
I/System.out( 4423): NewThemeChooser__:bundle apkid com.test.theme.MiCrease