我通过使用活动中的以下内容获得了屏幕尺寸
Display display = getWindowManager().getDefaultDisplay();
但同样的事情不是来自服务(原因很明显,我知道!)但我迫切需要从服务中获取显示尺寸。有人可以解释一下获取ScreenSize的其他方法吗?
所以我想,就我所知,我们无法从服务中获得屏幕尺寸。我现在完成的Wat是默认情况下至少启动活动1ce并在共享首选项中以像素为单位存储实际屏幕大小。我使用共享首选项来获取服务启动时的值。
这是唯一能解决问题的方法吗?我们无论如何都不能从服务中获得屏幕大小?
答案 0 :(得分:70)
完全有办法从服务中获取它:
WindowManager window = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
Display display = window.getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
答案 1 :(得分:14)
它对我有用!
DisplayMetrics metrics = getApplicationContext().getResources().getDisplayMetrics();
int width = metrics.widthPixels;
int height = metrics.heightPixels;
你只需要获得上下文。
答案 2 :(得分:0)
如果您在启动时启动服务(或自动以任何其他方式),则共享prefs是一种好方法。但是,如果启动服务的唯一方法是通过调用Context.startService(),那么在您用于启动服务的Intent中添加额外内容实际上更有意义。
答案 3 :(得分:0)
尝试一下:
ExistingType
答案 4 :(得分:-4)
好的伙计们 我想使用服务确实无法获得Screen Dimensions!我第一次启动活动时,通过在共享首选项中保存尺寸,我当前访问了屏幕尺寸。稍后当服务必须使用它时,它可以从共享首选项访问维度...猜猜这是现在唯一的出路... Thanx所有你的宝贵帮助!