作成するファイルのフォルダを監視し、作成されたファイルのファイル名に基づいて処理を行うアプリケーションを作成しています。クラスからAndroidのアクティビティにブロードキャストメッセージを送信する
私は既に、バッテリーとUSB接続からの他の通知のためにブロードキャストレシーバーを使用しています。そのため、fileObserverを実装しているクラスからブロードキャストを送信できるのが良いでしょう。
メインアクティビティでは、fileObserverのサブクラスを実装しましたが、イベントが発生したときにファイルが作成されたことをMAINアクティビティに通知できます。ここで
はサブクラスそれはコンテキストを持っていないので、私はクラスでcontext.sendBroadcastを使用することはできません
class FileListener extends FileObserver {
private String mAbsolutePath;
public FileListener(String path){
super(path);
mAbsolutePath = path;
Log.d("FileObserver",path);
}
@Override
public void onEvent(int event, String path){
switch(event){
case FileObserver.CREATE:
Intent i = new Intent("CREATED");
context.sendBroadcast(i);
break;
case FileObserver.DELETE:
Log.d("FileObserver", "DELETE");
break;
case FileObserver.DELETE_SELF:
Log.d("FileObserver", "DELETE_SELF");
break;
case FileObserver.MODIFY:
Log.d("FileObserver", "MODIFY");
break;
case FileObserver.MOVED_FROM:
Log.d("FileObserver", "MOVED_FROM");
break;
case FileObserver.MOVED_TO:
Log.d("FileObserver", "MOVED_TO");
break;
case FileObserver.MOVE_SELF:
Log.d("FileObserver", "MOVE_SELF");
break;
}
}
}
です。これはすべて非常に混乱しています。
おかげ
あなたはコンストラクタのコンテキストで渡します。好ましくは、アプリケーションコンテキスト –