私はアンドロイド開発を学び始めているので、現時点では私の知識は本当に限られています。ブロードキャストで遊んでみましたが、行き詰まり、何が間違っているのか理解できません。私がやろうとしているのは、放送受信機からの単純なトーストを表示することです。
Intent は、マニフェストで定義されたカスタム インテントです。
<receiver android:name=".receiver.SendReceiver" android:enabled="true">
<intent-filter>
<action android:name="com.android.terralink.sem.SOCCIA"></action>
</intent-filter>
</receiver>
レシーバーは次のように定義されます。
public class SearchReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent){
Toast.makeText(context, "asasa", Toast.LENGTH_SHORT).show();
}
}
アプリケーションから呼び出される最初のアクションで、次のようにします。
Intent i2 = new Intent(this, SearchReceiver.class);
i2.setAction(CUSTOM_INTENT);
sendBroadcast(i2);
Toast コードがアクティビティで動作することを確認しましたが、ブロードキャストでは動作しません。Toast を受信者のコンテキストで表示できないためですか?
また、Android アプリケーションの構造に関する別の質問。Activty から、ユーザーがテキスト ボックスに文字列を挿入して送信できるようにし (ボタン バインド)、アプリケーションがバックグラウンドで検索を実行し、結果が準備できたらユーザーに通知するようにしたい場合、次の手順は正しいですか? 1) 検索ボックス付きのメイン アクティビティ 2) データを取得するサービスを開始し、ブロードキャストを送信する 3) 受信者がユーザーに通知し、結果を表示するアクティビティを開く
そんなことして意味あるの?または、ジョブを終了する前に、サービス自体によって通知を行う必要がありますか?
ありがとう