1
我在写一个应用程序,它使用服务在后台接收消息。我想显示类似于本机来电屏幕的屏幕(即使设备已锁定,屏幕也会显示其他内容)。目前,该应用只是控制锁定屏幕和主屏幕上的小部件,但拥有更加本地化的外观活动会很好。在Android中显示类似本机来电屏幕的屏幕
我已经尝试过一个对话框活动。它可以满足我的需求,但它不会显示在锁定屏幕上,并且由于我从后台服务启动它,显示了它背后的主要活动。
我在写一个应用程序,它使用服务在后台接收消息。我想显示类似于本机来电屏幕的屏幕(即使设备已锁定,屏幕也会显示其他内容)。目前,该应用只是控制锁定屏幕和主屏幕上的小部件,但拥有更加本地化的外观活动会很好。在Android中显示类似本机来电屏幕的屏幕
我已经尝试过一个对话框活动。它可以满足我的需求,但它不会显示在锁定屏幕上,并且由于我从后台服务启动它,显示了它背后的主要活动。
我找到了解决这个问题的方法,对于任何可能在将来偶然发现的人来说。创建一个活动以显示您的屏幕,然后将以下内容添加到活动类:
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);
这似乎具有所需的效果。将活动的主题设置为全屏也有助于为铃声创建更加类似的体验。