こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

[android]ショートカットからのIntent

[android]ショートカットからBroadcastReceiverにIntentを送ることはできますか?

このページを参考にAndroidのデスクトップにショートカットを作る処理を作成しました。(これはできました)
http://kamoland.com/wiki/wiki.cgi?HOME%A4%CB%A5%B7%A5%E7%A1%BC%A5%C8%A5%AB%A5%C3%A5%C8%A4%F2%BA%EE%C0%AE%A4%B9%A4%EB

ショートカットのサンプルは探してみましたが、Activityを起動する例はあるのですが
BroadcastReceiverに送るものは見つかりませんでした。
自分でもsetClassName()の部分をBroadcastReceiverのものに変更してやってみたのですが
通知されませんでした。
IntentなのでBroadcastReceiverへ送るものができそうな気がするのですが、Activityに限定されるのでしょうか。

よろしくお願いします。

投稿日時 - 2011-01-15 23:18:03

QNo.6450584

困ってます

質問者が選んだベストアンサー

うーん、BroadcastReceiverに送るのはいいとして、引数のContenxtは何を指定するつもりです? BroadcastReceiverは、基本的にContextとIntentで起動したサービスの間のやりとりを受け持つもので、サービスからContextに配信されたメッセージを受信するための仕組みです。従って、受け取る側のContextが起動していなければいけません。通常は、これはActivityを使います。つまり、Activityが起動していて、Intentによってサービスが実行され、それで初めて両者の橋渡しをするBroadcastReceiverの意味があるわけです。Activityを起動しないとなると、何を受け取るContextとするつもりでしょうか。そこがはっきりしないといけませんね。

投稿日時 - 2011-01-16 14:32:02

補足

回答ありがとうございます。
Contextは理解不足でした。大変参考になりました。

Contextは、、、なにを指定すればいいんでしょうか。 (^^;
この辺を読んでみたのですが、よく分かりませんでした。
http://developer.android.com/intl/ja/reference/android/content/Context.html

やりたいのは、アプリ「設定1」「設定2」・・・と設定を行い、
ショートカットを作成して直接呼び出せるようにします。
「設定1」ショートカットをクリックすると、Serviceに「設定1」のIDを渡して
バックグラウンドで実行する、という機能を実現したいです。

Activityだと画面が表示されてしまうと思うのですが、
できれば、なにも表示しないで処理後にNotification等で通知だけ行うように
したいと思っています。

よろしくお願いします。

投稿日時 - 2011-01-16 22:18:06

お礼

自己解決できました。

透明なActivityで一旦受けて、BroadReceiverに送るようにしました。
送信後にActivityを閉じるようにしました。

見た目はなにも表示されずに処理が行われているように見えるので
これでOKです。

投稿日時 - 2011-02-07 20:43:56

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問