android - 如何在特定时间推送通知(提醒)?

时间:2015-08-22 17:52:12

标签: android broadcastreceiver alarmmanager

我检查了堆栈溢出中的几乎所有问题以及谷歌文档,但仍然无法理解我的案例中使用完全的内容。

我想要的是,用户将在应用程序中选择提醒日期,在此时间应用程序将发送通知,即使应用程序已关闭,也无法在提醒设置时间和提醒时间之间重新启动电话。

那么我需要使用什么?我需要哪些课程?广播接收器,这两个AlarmManager足够还是什么?代码20-30行的样本会很好=)

3 个答案:

答案 0 :(得分:1)

你需要做一些事情。

设定: 您需要将应用设置为通过在清单中注册this意图来开始侦听手机。

基本上,当您的用户选择时间时,您需要:

  1. 将该时间保存在文件/ db / shared prefs中。
  2. 将闹钟管理器设置为在合适的时间唤醒您的应用
  3. 当警报管理器发送时 你做广播,开始服务做必要的工作(广播 接收者必须在很短的时间内完成工作,所以 最好开始服务)
  4. 在您的服务中,删除时间 来自您的文件/ db / shared prefs
  5. 如果您的应用获得了重新启动手机的广播,那么您的所有闹钟都会丢失。您需要使用保存在文件/ db / shared prefs中的时间重置它们。

答案 1 :(得分:1)

检查Android开发者网站上的日历意图,以便您可以使用它们来确定时间等。 在您的广播接收器上将详细信息或时间传递给广播接收器。一旦你这样做,使用报警管理器等检查时间是否完美,只需在时间正确时发送推送通知。

我这样说假设您已经了解日历,警报管理器和广播接收器意图。如果您不这样做,我建议使用附加的Android开发者来搜索以下内容。

答案 2 :(得分:0)

  1. 使用AlertManager.set在特定时间发送通知。
  2. 要重新设置警报通知,请使用

    <body>
    <div id="chart_div" style="height:300px;"></div>
    
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script  type="text/javascript">
    /*<![CDATA[*/
    google.load('visualization', '1', {packages: ['corechart']});
    google.setOnLoadCallback(drawChart);
    
    function drawChart() {
       $.getJSON('data.php',function(data){
    
          var data = new google.visualization.DataTable(data);
    
          var chart = new google.visualization
                         .LineChart(document.getElementById('chart_div'));
    
          chart.draw(data, {});
       });   
    }
    /*]]>*/
    </script>
    </body> 
    

  3. <receiver android:name=".AfterBootReceiver" android:label="AfterBootReceiver">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED"></action>
    </intent-filter>
    

    在设备重新启动后重置AlarmManager.set。