android

androidアプリ作成時のメモです。

1140 views

androidアプリで、特定のファイルが更新されたらアクションしたいというような場合に使えるのがFileObserver。
サンプルコードを記す。

mainActivity.kt

package com.konishisoft.fileobserversample

import android.os.Build
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import java.io.File

class MainActivity : AppCompatActivity() {
    val fileName = "a.txt"

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        var filePath = File(applicationContext.filesDir.absolutePath ,fileName)
        val myFileObserver = MyFileObserver(applicationContext.filesDir.absolutePath)
        myFileObserver.startWatching()

        val button = findViewById<Button>(R.id.button)
        button.setOnClickListener {
            //ここでファイルを作成する
            filePath.writer().use {
                it.write("aaa")
            }

        }
    }
}

MyFileObserver.kt

package com.konishisoft.fileobserversample

import android.os.Build
import android.os.FileObserver
import android.util.Log
import java.io.File

class MyFileObserver(path:String): FileObserver(path, FileObserver.ALL_EVENTS) {
    override fun onEvent(p0: Int, p1: String?) {
        Log.d("sample", "イベント${p0}")
        Log.d("sample", "ファイル名${p1}")
    }
}

Page 10 of 19.

前のページ 次のページ



[添付ファイル]


お問い合わせ

プロフィール

マッスル

自己紹介

本サイトの作成者。
趣味:プログラム/水耕栽培/仮想通貨/激辛好き
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
仮想通貨はNEMが好き。
水耕栽培は激辛好きが高じて、キャロライナ・リーパーの栽培にチャレンジ中。

サイト/ブログ

https://www.osumoi-stdio.com/pyarticle/

ツイッター

@darkimpact0626