私はボタンの押下なしにサービスからオプションメニューを開く必要があるAndroidアプリケーションを開発しています。私はこれを試しましたサービスのオプションメニューを開きますか?
Activity.openOptionsMenu();
しかし、「タイプActivityから)非静的メソッドopenOptionsMenu(static参照できません」というエラーが表示されている
すべてのヘルプ!ありがとうございました 。
私はボタンの押下なしにサービスからオプションメニューを開く必要があるAndroidアプリケーションを開発しています。私はこれを試しましたサービスのオプションメニューを開きますか?
Activity.openOptionsMenu();
しかし、「タイプActivityから)非静的メソッドopenOptionsMenu(static参照できません」というエラーが表示されている
すべてのヘルプ!ありがとうございました 。
まず、これは直接可能ではありません。サービスはアクティビティのオプションメニューにアクセスできません。あなたの前景にあなたの活動がないかもしれません。
第2に、Android 3.0以降に移行すると、すべての端末にオプションメニューが表示されるわけではありません。
第3に、Android 1.xおよび2.xデバイスであっても、オプションメニューを開く必要があるのは、ユーザーがMENUボタンを押したためです。それ以外は、UXの観点からは非常に疑わしいものです。
あなたのサービスは、バックグラウンドで何か起きたことを伝えるために、自分のフォアグラウンドのアクティビティ(BroadcastReceiver
:LocalBroadcastManager
など)に連絡するようにしてください。その活動は、このイベントをユーザーに知らせることを歓迎しています。このイベントは、ユーザーにとって理にかなっており、現在のデバイスと将来のデバイスで動作します。
私はこれを自分で試していないが、任意の活動に関連するオブジェクトを呼び出すために、それは、活動にBroadcastReciever
オブジェクトを追加指定した名前を付けて登録し、onRecieve()
は}メニューに
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);
をサービスコールからこのを0 sendBroadcast(new Intent("net.yourapplication.menuopenreciever"));
私はこれを試してみましたが、私に知らせていないが、これはあなたはそれが不可能であると言っている
に役立ちます願っています! – Ahmed
@ user1155908:いいえ、私は良い考えではないと言っています。 – CommonsWare
@ user1155908あなたは一日中歩くことは可能でしょうか?私はあなたができることを賭けるが、おそらくあなたはしないだろう。 –