相关疑难解决方法(0)

从多任务面板取消关于删除应用程序的通知

我从我的应用程序(而不是服务)管理ONGOING通知.

当我用任务管理器用"结束"按钮终止应用程序时,通知消失.

当我从多任务pannel中删除应用程序时,应用程序被杀死但通知仍然存在.

我的问题是:

  • 如何捕捉此事件以清除通知?
  • 从多任务面板中删除应用程序时会发生什么?应用程序被破坏但进程仍然活着?这是正常的吗?

作为更新:

我的所有活动都使用以下方法扩展了MyActivity类(扩展了Activity):

@Override protected void onCreate(Bundle state) {
    super.onCreate(state);
    ((MyApplication) getApplication()).onActivityCreate(this, state);
}

@Override protected void onDestroy() {
    super.onDestroy();
    ((MyApplication) getApplication()).onActivityDestroy(this);
}
Run Code Online (Sandbox Code Playgroud)

我的应用程序使用以下方法扩展了MyApplication类(扩展了Application):

private List<Activity> activities = new ArrayList<Activity>();

protected final void onActivityCreate(Activity activity, Bundle state) {
    if(activities.isEmpty() && state == null) {
        onStart();
    }
    activities.add(activity);
}

protected final void onActivityDestroy(Activity activity) {
    activities.remove(activity);
    if(activities.isEmpty() && activity.isFinishing()) {
        onExit();
    }
}

protected void onStart() {
    // some code …
Run Code Online (Sandbox Code Playgroud)

android android-notifications

43
推荐指数
3
解决办法
3万
查看次数

onTaskRemoved()未在HUAWEI和XIOMI设备中调用

我一直onTaskRemoved()在服务中使用方法来检测应用程序从设备最新列表中删除的时间.我预先形成一些日志记录和其他需要在发生这种情况时发生的操作.它完美地运作.

然后我在运行Android 6.0的HUAWEI设备上检查了这个方法.该方法永远不会被调用.我还添加了一个Log.d调用,正如预期的那样,这个日志从未出现过.在XIOMI设备上也是如此.

任何想法为什么会发生以及如何解决这个问题?或者有没有另一种方法来检测应用程序是否已从RECENT列表中删除而不依赖onTaskRemoved()

谢谢

service android huawei

32
推荐指数
3
解决办法
7103
查看次数

android oreo的后台服务

如何在没有显示通知点的情况下在android Oreo中继续后台服务?我使用通知继续我的后台服务,但我不想显示运行服务的通知.

java android push-notification android-service android-8.0-oreo

12
推荐指数
2
解决办法
2万
查看次数

当系统自动终止服务时取消Android通知

我有一个实现的应用程序MediaBrowserServiceCompat。播放音乐时,它会在前台运行,并带有媒体控制通知,告知系统不可关闭。暂停时,它不显示在前台,并且保留通知。标准的东西。

当系统自动终止该服务时,不会删除该通知。

您可以通过将应用置于非前景暂停状态,离开应用并发出以下命令来模拟此情况:

adb shell am kill com.myapp.package
Run Code Online (Sandbox Code Playgroud)

通知仍然存在。您收到此Logcat消息:

W/ActivityManager: Scheduling restart of crashed service com.myapp.package/com.myapp.package.playback.platform.AndroidMediaService
Run Code Online (Sandbox Code Playgroud)

明显的挂钩(如没有onDestroyonTaskRemoved对服务等)似乎是叫-它似乎被彻底杀死。由于该服务始于START_NOT_STICKY,我们也不会onCreate在新实例上调用它。

的部分解决方案,这是使服务粘,并取消通知时的服务恢复。但是,这可能需要花费大量时间才能真正发生,在此期间通知不起作用,因此并不理想。它还可能会产生进一步的后果。

其他应用程序似乎对此没有任何问题。

重复这种情况(暂停,退出应用)并执行命令,例如在Google Play音乐上:

adb shell am kill com.google.android.music
Run Code Online (Sandbox Code Playgroud)

或Spotify:

adb shell am kill com.spotify.music
Run Code Online (Sandbox Code Playgroud)

并且您发现他们的通知会立即消失,就像它们在拆除时被取消一样。

他们会怎么做才能做到这一点?

android android-notifications android-mediasession

6
推荐指数
1
解决办法
483
查看次数