在应用程序外部显示模态消息,并在一段时间后关闭

时间:2017-01-20 17:09:41

标签: android algorithm alarmmanager

我正在寻找伪代码或真实代码。

我的目标是在两个边界之间的随机时间显示一个模态消息框(如"保持在顶部"和#34;不可绕过"),如t_in_minutes_minimumt_in_minutes_maximum内容始终相同。

如果我没有点击,那么这些消息不应该堆积起来,而是在一段时间后关闭。

  1. 有没有办法通过闹钟管理器执行此操作?
  2. 如何在我的应用程序之外显示模态消息?
  3. 如何在没有点击的情况下让我的信息在一段时间后自行关闭?
  4. PS:我做了很多尝试。

2 个答案:

答案 0 :(得分:1)

您可以使用WindowManager api

在应用程序外创建警报窗口

What is WindowManager in android?

代码段

WindowManager.LayoutParams p = new WindowManager.LayoutParams(
// Shrink the window to wrap the content rather than filling the screen 
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
// Display it on top of other application windows, but only for the current user
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
// Don't let it grab the input focus
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
// Make the underlying application window visible through any transparent parts
PixelFormat.TRANSLUCENT);
// Define the position of the window within the screen
p.gravity = Gravity.TOP | Gravity.RIGHT;
p.x = 0;
p.y = 100;

WindowManager windowManager = (WindowManager)getSystemService(WINDOW_SERVICE);
windowManager.addView(myView, p);

将此添加到清单

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

对于自动关闭消息,您可以使用处理程序在时间增量后消除。

答案 1 :(得分:0)

制作一致的警报管理器服务类,并研究alert.dialogue活动。通过框显示消息后,请检查以下链接

Execute function after 5 seconds in Android

并调用finish();用于关闭消息框的功能。