2013-09-24 93 views
1

我在写一个应用程序,它使用服务在后台接收消息。我想显示类似于本机来电屏幕的屏幕(即使设备已锁定,屏幕也会显示其他内容)。目前,该应用只是控制锁定屏幕和主屏幕上的小部件,但拥有更加本地化的外观活动会很好。在Android中显示类似本机来电屏幕的屏幕

我已经尝试过一个对话框活动。它可以满足我的需求,但它不会显示在锁定屏幕上,并且由于我从后台服务启动它,显示了它背后的主要活动。

回答

3

我找到了解决这个问题的方法,对于任何可能在将来偶然发现的人来说。创建一个活动以显示您的屏幕,然后将以下内容添加到活动类:

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); 

这似乎具有所需的效果。将活动的主题设置为全屏也有助于为铃声创建更加类似的体验。