为什么“活动屏幕”在Redmi设备中从后台服务启动活动时未显示最近的应用程序

时间:2018-03-13 11:19:32

标签: android

在我的Android应用程序中,我通过推送通知从后台启动我的服务。当我收到推送通知时,我正在使用以下代码唤醒我的活动:

   Intent it = new Intent("intent.my.action");
   it.setComponent(new ComponentName(context.getPackageName(),IncomingActivity.class.getName()));
   it.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
   context.getApplicationContext().startActivity(it);

一旦我的活动被唤醒,我按下我的主页按钮。当我尝试通过点击最近的应用程序打开我的应用程序时,我的传入活动未显示在最近的应用程序列表中。这种情况仅发生在redmi mi设备中,相同程序适用于摩托罗拉。 如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

上述问题的答案:

我只是在我的设备systemTray中使用自定义通知,同时唤醒了incomingActivity.In onCreate()我正在创建customNotification,然后当IncomingActivity进入onDestroy()时我清除了Customnotification。

我使用下面的代码,然后使用方法格式来创建CustomNotification:

public void setNoticationAfterCallAttendedView(Context view, String callerName, String status,Bitmap bitmap)
{
    Intent notificationIntent = new Intent(view, IncomingCallActivity.class);
    NotificationCompat.Builder builder =
            new NotificationCompat.Builder(view)
                    .setSmallIcon(R.drawable.logo,3)
                    .setContentTitle(callerName)
                    .setOngoing(true)
                    .setLargeIcon(bitmap)
                    .setContentText(status) ;
    PendingIntent contentIntent = PendingIntent.getActivity(view, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    builder.setContentIntent(contentIntent);
    NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    manager.notify(10000, builder.build());
}

我使用下面的代码,然后使用方法格式来清除CustomNotification:

public void clearNotification()
    {
        if(this!=null) {
            NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
            manager.cancel(10000);
        }
    }

我希望这个解决方案对某人有所帮助。在每个android体系结构都有不同之处,为什么我要使用这种格式。

感谢。