警报信号后弹出窗口 - Android

时间:2018-05-14 19:48:30

标签: java android alarmmanager popupwindow

我想知道 - 当select * from crosstab( $ct$ SELECT sa.id, company.name, to_char(sat.transaction_date, 'YYYY-MM') AS my, COALESCE(sat.amount,0) AS amnt FROM sales_account_transactions sat JOIN sales_account sa ON sa.id = sat.sales_account JOIN company ON sa.company = company.id WhERE sat.financial_company = 1 AND sat.transaction_date BETWEEN '2018-01-01' AND '2018-03-31' AND sat.reversed_by = 0 AND sat.original_id = 0 GROUP BY sa.id, company.name, my, amnt ORDER BY company.name, to_char(sat.transaction_date, 'YYYY-MM'); $ct$, $$VALUES ('2018-01'), ('2018-02'), ('2018-03') $$ ) as ct(id int, name text, "Jan 2018" int, "Feb 2018" int, "Mar 2018" int); 打电话时如何显示弹出窗口?我已经创建了AlarmManager现在我需要创建一些显示弹出窗口以取消此警报的内容。

我的代码:

AlarmManager

public void setAlarm(long timeInMillis){

    if(Build.VERSION.SDK_INT >= 23){
        mCalendar.set(
                mCalendar.get(Calendar.MONTH),
                mCalendar.get(Calendar.YEAR),
                mCalendar.get(Calendar.DAY_OF_YEAR),
                mCalendar.get(Calendar.HOUR_OF_DAY),
                mCalendar.get(Calendar.MINUTE)
        );
    }

    final AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);

    Intent intent = new Intent(this, MyAlarm.class);
    intent.setData(currentUri);


    final PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);


    alarmManager.setExact(AlarmManager.RTC, timeInMillis, pendingIntent);
}

}

1 个答案:

答案 0 :(得分:0)

onReceive(context, intent) {
  /*show the dialog in this method. set the onclick so it can dismiss the alarm, 
    get the value for the alarm from the bundle. I may be wrong about this 
    but i think alarmManager has a cancel(PendingIntent operation) method that u can 
    just send in the intent and your done. 
    Call a stopMedia(context) method after the cancel in order to stop the media 
    that is playing
   */
   showDialog(context, intent)
   //Extract the play media code to a method for readability
   playMedia(context) 
}

这应该可以解决你的问题

在发布代码之前:

我们可以使用待处理的intent并拥有一个处理待处理意图的活动。或使用处理程序执行代码。

在任何一种情况下,都要创建一个对话框片段,然后使用适当的上下文来显示它。对话框片段按钮的setOnClickListener {alarmManager.cancel}。

根据警报管理器的设置方式,可能需要更多说明