来自服务的Android获取屏幕尺寸

时间:2010-07-09 07:50:46

标签: android screen

我通过使用活动中的以下内容获得了屏幕尺寸

Display display = getWindowManager().getDefaultDisplay();

但同样的事情不是来自服务(原因很明显,我知道!)但我迫切需要从服务中获取显示尺寸。有人可以解释一下获取ScreenSize的其他方法吗?

所以我想,就我所知,我们无法从服务中获得屏幕尺寸。我现在完成的Wat是默认情况下至少启动活动1ce并在共享首选项中以像素为单位存储实际屏幕大小。我使用共享首选项来获取服务启动时的值。

这是唯一能解决问题的方法吗?我们无论如何都不能从服务中获得屏幕大小?

5 个答案:

答案 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所有你的宝贵帮助!