【发布时间】:2017-07-04 14:38:06
【问题描述】:
说明: 每次我的应用程序在 Android 4.4.4 上运行时,用户的手机都会快速重启,并且不会向 Crashlytics 发送崩溃数据。
当我说用户的手机重启时 - 这就像我见过的最快的重启。
应用程序在以下情况下运行良好:
- 4.1.1
- 6.0.1
其他说明:
- 我的朋友在他的 4.4.4 设备上重现了这个错误
- 我创建的后台服务在手机重启后继续(是的,我使用了 bootReceiver)
- Link to App on Google Play Store
当我删除下面的“addAction”代码时,应用程序运行正常:
public void startNotification(){
final Intent hideNotificationIntent = new Intent(MainActivity.this, HideWallpaperNotificationService.class);
final Intent stopIntent = new Intent(MainActivity.this, StopWallpaperService.class);
final Intent wallpaperCyclerIntent = new Intent(MainActivity.this, MainActivity.class);
alarmIntent = new Intent(this, SetWallpaperService.class);
alarmIntent.putStringArrayListExtra(Constants.PREF_WALLPAPERS, mWallpapers);
PendingIntent nextWallpaperPI = PendingIntent.getService(this.getApplicationContext(), 300, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);
PendingIntent stopWallpaperPI = PendingIntent.getService(this.getApplicationContext(), 300, stopIntent, PendingIntent.FLAG_UPDATE_CURRENT);
PendingIntent showApp = PendingIntent.getActivity(this.getApplicationContext(), 300, wallpaperCyclerIntent, PendingIntent.FLAG_UPDATE_CURRENT);
PendingIntent hideNotification = PendingIntent.getService(this.getApplicationContext(), 300, hideNotificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
//Button
NotificationCompat.Action stopAction = new NotificationCompat.Action.Builder(R.drawable.ic_stop_white_18dp, "Stop", stopWallpaperPI).build();
NotificationCompat.Action nextAction = new NotificationCompat.Action.Builder(R.drawable.ic_arrow_forward_white_24dp, "Next", nextWallpaperPI).build();
NotificationCompat.Action removeAction = new NotificationCompat.Action.Builder(R.drawable.ic_clear_white_18dp, "Hide", hideNotification).build();
Bitmap original;
if(lastSelected == -1)
original = BitmapFactory.decodeFile(mWallpapers.get(0));
else
original = BitmapFactory.decodeFile(mWallpapers.get(lastSelected));
mBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_stat_fit)
.setLargeIcon(original)
.setWhen(0)
.setColor(ContextCompat.getColor(this.getApplicationContext(), R.color.colorPrimary))
.setContentTitle("Wallpaper Cycler")
.setContentText("Click to open")
.setContentIntent(showApp)
.addAction(stopAction)
.addAction(nextAction)
.addAction(removeAction);
notificationManager = (NotificationManager) getSystemService(MainActivity.this.NOTIFICATION_SERVICE);
Notification n;
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN){
n = mBuilder.build();
}else{
n = mBuilder.getNotification();
}
n.flags |= Notification.FLAG_NO_CLEAR | Notification.FLAG_ONGOING_EVENT;
try{
notificationManager.notify(Constants.NOTIFICATION_ID, n);
}catch(Exception e){Log.e(TAG,"Error notifying");}
}
【问题讨论】:
标签: android notifications crash reboot