如何在Android中每5分钟刷新一次文件读取?

如何在Android中每5分钟刷新一次文件读取?,android,file,android-activity,refresh,inputstream,Android,File,Android Activity,Refresh,Inputstream,我试着每5分钟读一次文件,但我真的不知道怎么读 这是我的代码: public class MainActivity extends Activity implements OnClickListener { Button bVe, bCl, bCo, bAd; File tarjeta = Environment.getExternalStorageDirectory(); @Override protected void onCreate(Bundle savedInstanceState

我试着每5分钟读一次文件,但我真的不知道怎么读

这是我的代码:

public class MainActivity extends Activity implements OnClickListener {

Button bVe, bCl, bCo, bAd;
File tarjeta = Environment.getExternalStorageDirectory();

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    bVe = (Button) findViewById(R.id.bVehiculos);
    bCl = (Button) findViewById(R.id.bClientes);
    bAd = (Button) findViewById(R.id.bAdmin);

    bVe.setOnClickListener(this);
    bCl.setOnClickListener(this);
    bAd.setOnClickListener(this);


    File file1 = new File(tarjeta.getAbsolutePath()+"/.Info/Prices", "values.txt");        
    try {
        FileInputStream fIn1 = new FileInputStream(file1);   
        InputStreamReader archivo1 = new InputStreamReader(fIn1);
        BufferedReader br1 = new BufferedReader(archivo1);
        String linea1 = br1.readLine();
        String texto1 = "";
        while (linea1!=null)
        {
            texto1 = texto1 + linea1 + "\n";
            linea1 = br1.readLine();
        }
        br1.close();
        archivo1.close();


    } catch (IOException e) {
        Toast.makeText(this, "Cant read", Toast.LENGTH_SHORT).show();
    }
我需要的是,当我进行此活动时,它每5分钟读取一次文件


我将非常感谢任何帮助

试试这样的方法:

getHandler().post(new Runnable() {
    @Override
    void run() {
        (code to read file)
        getHandler().postDelayed(this,300000);
    }
});

它所做的是将此Runnable推送到ui线程中,ui线程在5分钟(300000毫秒)内将自己发布到同一个线程中。

为什么要每五分钟检查一次?您可以使用
FileObserver

FileObserver observer = 
new FileObserver(Environment.getExternalStorageState() +"/documents/") {
    @Override
    public void onEvent(int event, String file) {
        if(event == FileObserver.MODIFY && file.equals("fileName")){ 
            Log.d("TAG", "File changed");
            // do something
        }
    }
};
这不是更简单,CPU/电池消耗更少吗?请参阅上的另一个很好的示例

p、 在你的情况下,你可能会使用

new FileObserver(tarjeta.getAbsolutePath()+"/.Info/Prices/")

file.equals("values.txt")
。。。可能还有更多的事件类型

只是一个想法。。。干杯