我有一个简单的手电筒应用程序,我想通过简单地点击小工具来实现灯光开关功能。
现在,当我点击我的程序启动的小部件时,没关系,但最好直接从小部件访问我的应用程序的功能。
我想现在appwidgetprowider刚开始我的活动:
Intent intent = new Intent(context,MainActivity.class);
在我的手电筒的主要活动中,我通过
打开手机的LEDswitchOnTheFlash()
方法
有没有人有想法,我怎么能从小部件启动这个方法?
谢谢你,最诚挚的问候!
答案 0 :(得分:0)
打开手电筒不需要意图,因为它总会把你带到活动或动作的某个地方。最简单的方法是让switchOnTheFlash()
函数static
像这样 -
public static void switchOnTheFlash() {
// Your Function
}
现在您可以通过任何活动调用此函数,就像 -
一样YourACtivity.switchOnTheFlash();
如果出现错误 -
确保您在switchOnTheFlash()
中使用的所有变量也应该静态,否则您将收到类似cannot use non-static variables in static function
的错误(或者可能有点不同)
另一个错误,如果您使用getResources()
等功能,则可能会出错。要摆脱,只需在全局范围内设置static Context mContext;
并将其初始化为mContext = this;
中的OnCreate
。然后,只需在函数mContext.getResources()...
中的任何位置替换switchOnTheFlash()
。
干杯!