Java 如何在android上的widget中使用getSystemService?

Java 如何在android上的widget中使用getSystemService?,java,android,widget,wakelock,android-wake-lock,Java,Android,Widget,Wakelock,Android Wake Lock,我想通过点击桌面上的小部件来使用唤醒锁来保持屏幕打开 代码如下: final PowerManager pm = (PowerManager)getSystemService(context.POWER_SERVICE); PowerManager.WakeLock mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE, ""); mWakeLock.acqu

我想通过点击桌面上的小部件来使用唤醒锁来保持屏幕打开

代码如下:

final PowerManager pm = (PowerManager)getSystemService(context.POWER_SERVICE);
PowerManager.WakeLock mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE, "");
mWakeLock.acquire();
但是它说不能使用
getSystemService
如果不是“扩展活动”


请帮助

在非活动类或小部件中使用
getSystemService
时,您需要使用适当的
上下文

final PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE);  //your context here
PowerManager.WakeLock mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE, "");
mWakeLock.acquire();
对于
Context.POWER\u服务


希望这有帮助。

当您扩展
AppWidgetProvider
时,所有方法都传递了
上下文
对象

getSystemService
方法是Android中
Context
类的一部分,因此您可以使用传入的上下文获取它

见:

示例代码:

public class TestWidget extends AppWidgetProvider {

    @Override
    public void onEnabled(Context context) {
        super.onEnabled(context);
        PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
    }
}

示例代码使用OneEnabled方法作为示例,但这也适用于其他方法,如
onDisabled
onUpdate
OnAppWidgetOptions Changed
等。

您掌握了上下文吗?首先,您应该学习OOP的基本知识。。。方法存在于类中。接下来学习android的框架。。。哪个类有这个方法,以及如何在小部件类中获取它的实例