我正在开发一个Android应用程序来下载.mp3文件 服务器。下载完成后,文件将存储在 DIFFRENT EXTENSION(.srt)。当用户点击播放时 按钮文件的EXTENSION将变回.mp3并播放 当用户退出应用程序时,该文件将返回到 (.srt)格式。
一切都很好。但是现在如果用户在没有按BackKey的情况下关闭应用程序,则扩展名将是相同的。
我的代码是
public void onBackPressed() {
new AlertDialog.Builder(this)
.setTitle("Really Exit?")
.setMessage("Are you sure you want to exit?")
.setNegativeButton(android.R.string.no, null)
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
File file = new File(Environment.getExternalStorageDirectory().toString() + "/Jithin's/downloadedfile.mp3"); // handler to your ZIP file
File file2 = new File(Environment.getExternalStorageDirectory().toString() + "/Jithin's/downloadedfile.srt");
// destination dir of your file
boolean success = file.renameTo(file2);
System.exit(0);
}
}).create().show();
}
如果用户没有通过正确的方式退出,则退出按钮内的功能不起作用。
答案 0 :(得分:2)
从Android Studio文件创建新服务 - >新建 - >服务 - >服务 然后像这样重写onStartCommand方法
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
File file = new File(Environment.getExternalStorageDirectory().toString() + "/Jithin's/downloadedfile.mp3"); // handler to your ZIP file
File file2 = new File(Environment.getExternalStorageDirectory().toString() + "/Jithin's/downloadedfile.srt");
// destination dir of your file
boolean success = file.renameTo(file2);
MyService.this.stopService(intent);
return super.onStartCommand(intent, flags, startId);
}
然后你可以通过这个
从活动的onstop方法开始protected void onStop(){
super.onStop();
Intent intent = new Intent(MainActivity.this,MyService.class);
startService(intent);
}
或者您也可以在onStop方法中执行相同的操作
protected void onStop(){
super.onStop();
File file = new File(Environment.getExternalStorageDirectory().toString() + "/Jithin's/downloadedfile.mp3"); // handler to your ZIP file
File file2 = new File(Environment.getExternalStorageDirectory().toString() + "/Jithin's/downloadedfile.srt");
// destination dir of your file
boolean success = file.renameTo(file2);
}
答案 1 :(得分:1)
您需要在此处对Android活动生命周期进行更多研究:https://developer.android.com/training/basics/activity-lifecycle/index.html
Android系统会自动调用某些生命周期方法,例如当用户离开您的应用程序而不按下退出按钮时。您很可能希望在onPause()或onStop()方法中将文件扩展名更改回.srt。
用户返回应用程序后,您可以在onRestart(),onStart()或onResume()方法中恢复扩展名。
希望有帮助(我在网站上的第一个答案)!
答案 2 :(得分:0)
应用程序终止时应调用onDestroy()方法。