SMS を使用してデータを受信し、データベースに保存するアプリを開発しています。また、データベースからのクエリの結果を表示するアクティビティがあります。ここで、この特別なアクティビティが開いていて、新しいメッセージが sms-receiver のコードに到着した場合、このアクティビティを再起動します。このアクティビティが開いていなければ、何も起こりません。
1 に答える
1
BroadcastReceiver
アクティビティの更新を実行するアクティビティに を登録できます。
public class YourActivity extends Activity {
private final BroadcastReceiver myReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// refresh UI or finish activity and start again
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
IntentFilter filter = new IntentFilter("ACTION_REFRESH_UI");
registerReceiver(myReceiver, filter);
}
@Override
public void onDestroy() {
super.onDestroy();
unregisterReceiver(myReceiver);
}
}
新しいメッセージがデータベースに保存されるたびにブロードキャストを送信します。
Intent intent = new Intent();
intent.setAction("ACTION_REFRESH_UI");
sendBroadcast(intent);
変更について通知され、ブロードキャストを送信するデータベースのコンテンツ オブザーバーを追加することもできます (詳細については、この例を参照してください)。
于 2015-03-10T21:39:56.923 に答える