文件的储存
内部储存 :是指将文件储存在data目录下
外部储存:指将文件储存到本地目录
整体来说和java io操作基本一个套路
file=new File(Environment.getExternalStorageDirectory(),"new.txt");
baochun.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FileOutputStream fos=null;
String text= jis.getText().toString();
try {
fos=new FileOutputStream(file);
fos.write(text.getBytes());
fos.flush();
Toast.makeText(jishi.this,"保存成功",Toast.LENGTH_SHORT).show();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if(fos!=null)
{
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
});
}
还需要在xml文件中配置储存的权限
** <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>**
Handler消息传递机制
1.由于支线程不能操作主线程的组件,比如settext什么的,所以要通过handler间接操作
final Handler handler=new Handler(){
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
if(msg.what==0x123)
{
xiaoxi.setText("变一条信息");
}
}
};
xia.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Thread thread=new Thread(new Runnable() {
@Override
public void run() {
handler.sendEmptyMessage(0x123);//发送空消息
}
});
thread.start();
handler消息传递机制还能实现进度条每秒减少一点的效果;
Handler handler1=new Handler()
{
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
if(TIME-mprogress>0)
{
mprogress++;
times.setProgress(TIME-mprogress);
handler1.sendEmptyMessageDelayed(TIMEMSG,1000);
}
else
{
Toast.makeText(duo.this,"时间到",Toast.LENGTH_SHORT).show();;
}
}
};
public class duo extends AppCompatActivity {
private TextView xiaoxi;
private ProgressBar times;
final int TIME=60;//定义时间长度
final int TIMEMSG=0x001;
private int mprogress=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_duo);
xiaoxi = findViewById(R.id.xiaoxi);
times = findViewById(R.id.time);
Button xia = findViewById(R.id.xia);
handler1.sendEmptyMessage(TIMEMSG);