我正在编写一个使用服务在后台接收消息的应用程序。我想显示一个类似于本地来电屏幕的屏幕(即使设备已锁定,该屏幕也显示高于其他所有内容的屏幕)。目前,该应用程序仅控制锁定屏幕和主屏幕上的小部件,但具有更自然的外观效果会很好。
我已经尝试了对话活动。它可以满足我的需要,但不会显示在锁定屏幕中,并且由于我是从后台服务启动的,因此显示了其背后的主要活动。
我为将来可能偶然发现此问题的任何人找到了解决方案。创建一个活动以显示您的屏幕,然后将以下内容添加到活动类中:
public class DialogActivity extends Activity
{
/**
* Tag for this class to be used when logging.
*/
public static final String TAG = "DialogActivity";
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Set the window to always display on the forefront and to be opened when locked
Window oWindow = this.getWindow();
oWindow.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
+ WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
+ WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
// Set our layout
this.setContentView(R.layout.activity_dialog);
这似乎具有预期的效果。将活动的主题设置为全屏显示也有助于创建与铃声相似的体验。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句