gpt4 book ai didi

android - 强制关闭 Android 应用程序后显示通知

转载 作者:搜寻专家 更新时间:2023-11-01 08:00:43 26 4
gpt4 key购买 nike

我今天不停地用谷歌搜索这个,但找不到任何东西。我的场景如下:

我有一个 Android 应用程序可以自动回复收到的消息。我有下面的代码来创建一个持久的(不可滑动的)通知,然后当应用程序通过 onDestroy 被销毁时,通知被删除。但是,当我打开最近面板并将我的应用滑开时,该应用会停止自动回复服务并且广播接收器会停止,但是不会调用 onDestroy 并且通知仍然可见。

public void notifCreate() {
Intent i = new Intent(Main.this, Main.class);
PendingIntent pi = PendingIntent.getActivity(Main.this, 1, i, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationManager notifManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Notification.Builder notifBuilder = new Notification.Builder(getApplicationContext());

notifBuilder.setContentTitle(getString(R.string.app_name));
notifBuilder.setContentText(getString(R.string.notification));
notifBuilder.setContentIntent(pi);
notifBuilder.setSmallIcon(R.drawable.ic_launcher);
notifBuilder.setOngoing(true);
Notification notif = notifBuilder.getNotification();
notifManager.notify(1, notif);
}

public void notifDestroy() {
NotificationManager notifManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notifManager.cancelAll();
}

@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String s) {
loadPrefs();
}

@Override
public void onBackPressed() {
moveTaskToBack(true);
}

@Override
protected void onPause() {
super.onPause();

notifCreate();
}

@Override
protected void onResume() {
super.onResume();

loadPrefs();
checkStates();
notifDestroy();
}

@Override
public void onDestroy() {
super.onDestroy();

notifDestroy();
service = false;
}

我的目标是:

如果应用程序被强制关闭等,我很乐意简单地销毁通知,或者如果可能的话,我不介意该应用程序成为一项服务,因此即使从最近的应用程序中删除,它仍然会运行。然而,最好的情况是当我的广播接收器正在运行时(因此以某种方式检测它何时实际工作)并且无论何时打开,都显示通知。每当它不运行时,应删除通知。如果需要更多代码等,请发表评论,感谢您的帮助。

最佳答案

如果您的通知由服务处理并且目标 API 为 14 或更高版本,那么您有机会在覆盖的“void onTaskRemoved(Intent rootIntent)”方法中取消通知。

关于android - 强制关闭 Android 应用程序后显示通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21654845/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com