【问题标题】:Android - Set notification to never go awayAndroid - 将通知设置为永不消失
【发布时间】:2012-10-16 16:04:19
【问题描述】:

我有这段代码很好用:

Notification n = builder.build();
n.flags = Notification.FLAG_NO_CLEAR;

但是当我重新启动手机时,通知消失了。有没有任何标志可以做到这一点?

【问题讨论】:

    标签: java android android-notifications


    【解决方案1】:

    如果您想在设备启动时打印通知,您可以创建一个在系统启动完成时调用的接收器,为此,首先创建一个接收器,

    public class MyReciever extends BroadcastReceiver{
    
        @Override
        public void onReceive(Context context, Intent intent) 
    {
            Log.d("BOOT COMPLETE","SERVICE CALLED>>>>>>>>>>>>");
            //use your code here to print notifications
    
        }
    }
    

    系统启动完成时调用此接收器。您也可以从接收者的 onReceive 方法调用服务来打印通知。

    您还必须在清单文件中定义以下规则,

    首先定义获取 BOOT_COMPLETION 意图的权限,

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    

    然后也定义你的接收器,

     <receiver android:name=".MyReciever" 
                 android:enabled="true" 
                 android:exported="false">
                <intent-filter>
                    <action android:name="android.intent.action.BOOT_COMPLETED"/>
                </intent-filter>
            </receiver>
    

    【讨论】:

      【解决方案2】:

      没有。我认为这是不可能的。

      您可以有一个在启动时运行的 service 以再次显示该通知。否则通知不会在重新启动后持续存在。

      【讨论】:

      • 假设通知中的文本保存为变量,它如何知道该文本?我必须将消息保存到数据库中吗?
      • 数据库对于通知来说太过分了。你可以使用SharedPreferences
      • 数据库只是持久存储的一种方法,但是是的,您需要以某种方式保存它。
      • 明白了。但是服务必须开始显示这些通知......对吗?
      • 是的。您可以在启动完成后加载它。有一个详细的答案here可以帮助你做到这一点。
      猜你喜欢
      • 2013-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多