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的框架。。。哪个类有这个方法,以及如何在小部件类中获取它的实例