我正在开发Android应用程序,我必须从服务打开选项菜单,无需按任何按钮。我试过这个
Activity.openOptionsMenu();
但它显示错误 “无法从类型Activity”
中对静态方法openOptionsMenu()进行静态引用任何帮助!!谢谢。
答案 0 :(得分:2)
首先,这不是直接可能的。服务无权访问活动的选项菜单。在前台甚至可能没有你的活动。
其次,当您进入Android 3.0 +时,并非所有设备都会有选项菜单。
第三,即使对于Android 1.x和2.x设备,也应该打开选项菜单的唯一时间是因为用户按下MENU按钮。从UX的角度来看,其他任何事情都是非常可疑的。
欢迎您尝试将您的服务尝试联系您的前台活动(例如,通过BroadcastReceiver
连接到LocalBroadcastManager
)告诉该活动后台发生的事情。欢迎该活动以某种方式告知用户此事件对用户有意义,并将在今天和明天的设备上工作。
答案 1 :(得分:0)
我自己没有尝试过,但是要调用任何与活动相关的对象,最好在活动中添加BroadcastReciever
对象,使用给定名称注册,onRecieve()
应该打开菜单< / p>
private BroadcastReceiver menuopenreciever = new BroadcastReceiver() {
@Override
public void onReceive(Context arg0, Intent arg1) {
//open menu here
}
}
按如下方式注册接收者:
IntentFilter filter = new IntentFilter();
filter.addAction("net.yourapplication.menuopenreciever");
registerReceiver( menuopenreciever, filter);
来自服务电话
sendBroadcast(new Intent("net.yourapplication.menuopenreciever"));
我没试过这个,但请告诉我,希望这有帮助