从服务打开选项菜单?

时间:2012-03-31 12:39:02

标签: android android-activity optionmenu

我正在开发Android应用程序,我必须从服务打开选项菜单,无需按任何按钮。我试过这个

Activity.openOptionsMenu();

但它显示错误 “无法从类型Activity”

中对静态方法openOptionsMenu()进行静态引用

任何帮助!!谢谢。

2 个答案:

答案 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"));

我没试过这个,但请告诉我,希望这有帮助