ACTION_SEND インテントを処理するメイン アクティビティ。インテント テキスト内の受信データに基づいて、データベースに新しいレコードを配置しました。私の問題は、アンドロイドが方向の変更後もこの意図を保持しているように見えるため、電話を回転させるたびにDBに1行追加されることです。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.db_list);
Intent intent = getIntent();
String action = intent.getAction();
String type = intent.getType();
if (Intent.ACTION_SEND.equals(action) && type != null) {
if ("text/plain".equals(type)) {
storeTextInDatabase(intent);
}
}
fillListFromDB();
registerForContextMenu(getListView());
}
新しく受信したインテントごとに、storeTextInDatabase(intent) 呼び出しを 1 回だけ実行するにはどうすればよいですか。私の最初のアイデアは、savedInstanceState バンドルの内容が null である場合、それが Activity の最初の呼び出しであることを調べることでした。このソリューションには問題があります。アクティビティの有効期間中にブロードキャストされた複数のインテントを処理したいのです。