現在実行中のブロードキャスト受信者をアクティビティから更新することは可能ですか?例えば、:現在実行中のBroadcastReceiver(新しい値を渡す)をアクティビティから更新します。
ユーザーが文字列を入力してからsubmitを押すと言う...私は放送受信機が新しい文字列で更新され、その文字列を受信機が持つかもしれない古い文字の代わりに使用したい。これは可能ですか?または、ユーザーが[送信]をクリックして新しい文字列で再起動したときに、古い受信者を何とか止めることはできますか?
現在実行中のブロードキャスト受信者をアクティビティから更新することは可能ですか?例えば、:現在実行中のBroadcastReceiver(新しい値を渡す)をアクティビティから更新します。
ユーザーが文字列を入力してからsubmitを押すと言う...私は放送受信機が新しい文字列で更新され、その文字列を受信機が持つかもしれない古い文字の代わりに使用したい。これは可能ですか?または、ユーザーが[送信]をクリックして新しい文字列で再起動したときに、古い受信者を何とか止めることはできますか?
あなたの質問に間違いがありますが、SharedPreferenceにあなたの文字列を保存しないのはなぜですか?
アクティビティでその文字列を更新する必要がある場合は、その文字列を環境設定として保存し、ブロードキャストレシーバのonReceive
メソッドで優先度から戻します。
私はあなたができるとは思わない。 Receiver Lifecycleのドキュメントを見ると、ライフサイクルがonReceiveに限定されていることがわかります。
受信者のライフサイクルがユーザーとやりとりするのに十分な長さの場合は、単にBroadcastReceiverを使用してサービスを開始します。サービスには2つのことを行うことができます:
次に、ユーザが問題の値を変更するたびに、アクティビティコードがインテントを発するようにします。
このソリューションの素晴らしい点は、サービスが実行されておらず、インテントが床に落とされ、サービスをまったく開始する必要がない場合です。サービスが実行されている場合、更新が行われます。
共有リストはArrayListですか? –
いいえ、セットにすることはできません。 getStringSetメソッドを参照してください。違いは、重複した文字列を得ることができないということです(リストでは重複を許しています) –
ccheneson
は3.0のためにしか機能しません –