3

SDカードに配置されたファイルを(再帰的に)監視する必要があります。ブロードキャスト レシーバーは特定のインテント フィルター「アクション」を設定することでシステム イベントを受信できるため、これを使用して、開く、削除などのファイル変更イベントを処理できる可能性があります。 "値は、使用される特定の「ユーザー権限」とともにマニフェスト ファイルに設定されます。

もう 1 つの方法は FileObserver を実装することですが、これにはガベージ コレクションの問題があります。オブジェクトを保持する Service を作成しても、リソースが不足すると Service 自体が終了する可能性があります (ポイント 5.2 http://www.vogella.com/articles/ AndroidServices/article.html ) したがって、完全な証明方法ではありません。

BroadcastReceiverがそのようなイベント/インテントを受信できるようにする構成値を教えてください。

4

1 に答える 1

3

ブロードキャストレシーバーは特定のインテントフィルター「アクション」を設定することでシステムイベントを受信できるため、Open、Deleteなどのファイル変更イベントを処理するために使用できる可能性があります。

いいえ。通常のJavaI/ O操作では、ブロードキャストは発生しません。

もう1つの方法は、FileObserverを実装することですが、オブジェクトを保持するサービスを作成した場合でも、リソースが不足するとサービス自体が終了する可能性があるため、ガベージコレクションに問題があります。したがって、完全な証明方法ではありません。

ファームウェアを変更する以外に、外部ストレージの動作を継続的に監視するための「絶対確実な」方法はありません。

私はAlarmManager定期的にディレクトリをスキャンして変更を確認し、ユーザーが選択したポーリング期間を使用して、アプリによるバッテリーとCPUの消費を制御できるようにします。

于 2012-05-08T22:56:11.847 に答える