如何在Android中每5分钟刷新一次文件读取?
我试着每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
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")
。。。可能还有更多的事件类型
只是一个想法。。。干杯