恢复(Foreground Started)活动而不更新ImageIcons

时间:2015-11-25 05:02:44

标签: android android-intent android-activity android-service android-notifications

我有一个音乐播放器服务,当它显示前景时,我会向用户显示通知。但是当用户点击通知返回App时,它会再次更新图标(图标图像设置在onCreate上)。我知道它正在更新图标,因为它正在重新创建活动。

这是一段代码:

    public void startForeground(String songName){

        Intent showTaskIntent = new Intent(AudioPlayer.this, PlayerActivity.class);
        showTaskIntent.setAction(Intent.ACTION_MAIN);
        showTaskIntent.addCategory(Intent.CATEGORY_LAUNCHER);
        showTaskIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

PendingIntent contentIntent = PendingIntent.getActivity(
                this,
                0,
                showTaskIntent,
                PendingIntent.FLAG_UPDATE_CURRENT);

Notification notification = new Notification.Builder(getApplicationContext())
                .setContentTitle(getString(R.string.app_name))
                .setContentText(songName)
                .setSmallIcon(R.drawable.logo)
                .setWhen(System.currentTimeMillis())
                .setContentIntent(contentIntent)
                .build();

        startForeground(NOTIFICATION_ID, notification);

我尝试了很多不同的标志,但它总是更新。堆栈中的其他相关案例和解决方案对我没有帮助。

-

主要问题 - 解释:

  1. 当您打开音乐播放器时,您有播放按钮,例如。
  2. 点击播放,播放。播放图像会因暂停图像而改变。
  3. 活动成为前景。它还在玩。
  4. 您点击通知。活动回来了(onCreate,onStart,onResume)。然后它会改变播放图像的暂停图像。

    • 如果我点击App图标(系统图标不通知),则会调用onRestart。 我认为这就是我所需要的。
  5. 我希望有人可以帮助我。

1 个答案:

答案 0 :(得分:3)

android:launchMode="singleTask"添加到AndroidManifest.xml

中的主要活动