我有一个ProgressDialog正在运行,并且我不希望在ProgressDialog运行时屏幕熄灭。我应该使用什么?我应该使用Windows功能还是类似的?如何使用ProgressDialog保持屏幕?
回答
我找到了解决方案。
你应该使用类似的东西:
progressDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
为我工作。
某些应用需要保持屏幕打开状态,例如游戏或电影应用。做到这一点的最佳方式是在您的活动中使用FLAG_KEEP_SCREEN_ON(并且只能在活动中使用,而不能在服务或其他应用程序组件中使用)。例如:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
这种方法的优点是,不像唤醒锁定(在Keep the CPU On讨论),它不需要特殊的权限,平台正确管理用户应用程序之间移动,而无需您的应用程序需要以担心释放未使用的资源。
另一种方式来实现,这是在应用程序的布局XML文件中,通过使用android:keepScreenOn属性:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:keepScreenOn="true">
...
</RelativeLayout>
使用android:keepScreenOn="true"
等同于使用FLAG_KEEP_SCREEN_ON。您可以使用最适合您应用的方法。在您的活动中以编程方式设置标志的优点是,它使您可以选择稍后以编程方式清除标志,从而允许屏幕关闭。
注意:您不需要清除FLAG_KEEP_SCREEN_ON标志,除非你 不再需要屏幕停留在你运行应用程序(例如 ,如果你想在屏幕超时一段时间后 不活跃)。窗口管理器负责确保在应用程序进入后台或返回到 前台时发生正确的事情。但是,如果你想明确地清除该标志,从而 让屏幕再次关闭,使用clearFlags():
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON).
多见于:http://developer.android.com/training/scheduling/wakelock.html#screen
明白了。但是我不能在对话框中使用该标志吗?因为我想让对话框打开屏幕,而不是活动。 – Jonas452
,键入以下行onCreate方法
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
这将使我的活动使屏幕,而不是ProgressDialog。 – Jonas452
- 1. 如何保持android屏幕大小?
- 2. 如何在网页上保持屏幕
- 3. 如何在Android上保持屏幕?
- 4. 如何设置保持屏幕和全屏幕标志?
- 5. ProgressDialog涵盖整个屏幕
- 6. 屏幕方向和ProgressDialog
- 7. Android如何在使用webView时保持屏幕状态
- 8. 屏幕保持终止
- 9. 保持在的LinearLayout屏幕
- 10. Android:保持屏幕上
- 11. 保持屏幕打开
- 12. 如何使用引脚和间距将屏幕中心保持在与屏幕尺寸无关的屏幕上
- 13. 防止android ProgressDialog黑屏整个屏幕
- 14. 使屏幕保持活动状态
- 15. 如果玩家保持屏幕跳高
- 16. 我的应用程序保持屏幕
- 17. Android保持屏幕在应用程序
- 18. 如何使屏幕尺寸保持不变
- 19. 如何让屏幕保持特定的持续时间?
- 20. 如何使ui支持所有屏幕?
- 21. 屏幕支持xlarge屏幕?
- 22. 在使用屏幕键盘时保持输入字段在屏幕中
- 23. ,如何在大屏幕和小屏幕中保持“相同”的填充?
- 24. 登录屏幕显示progressdialog并允许屏幕方向更改
- 25. 如何将屏幕保持在我的应用程序中?
- 26. 如何保持屏幕上组件占用空间的比例
- 27. 如何在使用拖动解除拖动时使inputAccessoryView保持在屏幕上?
- 28. 屏幕锁定后ProgressDialog消除器
- 29. 旋转屏幕后ProgressDialog消失
- 30. 解雇ProgressDialog后点亮屏幕
你可以在任何视图上使用setKeepScreenOn(布尔标志)。 – NaserShaikh