android - 我们如何知道 Android 应用程序已关闭?

标签 android android-studio filepath

I am developing an Android Application to download an .mp3 file from server. When downloading is finished the file will be stored in a DIFFRENT EXTENSION (.srt) . and when the user clicked on the play button the file's EXTENSION will be changed back into .mp3 and play And when the user exit's the Application the file will go back to the (.srt) format.

一切正常。但现在如果用户关闭应用程序而不按 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();

    }

如果用户没有通过正确的方式退出,退出按钮内的功能将不起作用。

最佳答案

从 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);
 }

然后你可以通过这个从你的 Activity 的 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);
 }

关于android - 我们如何知道 Android 应用程序已关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39050860/

相关文章:

javascript - 为什么 <script> src 中的路径以单斜杠开头会导致错误?

tomcat - 何时将 "/"放在文件路径的末尾

Android Runtime.getRuntime().exec 和 rsync

android-studio - 是否有在两个不同的 android studio 实例之间切换的捷径

android - 我应该添加相同的工具 :context code to each XML size file in Android Studio?

java - 如何解决无法识别的类问题?

php - 使用 preg_replace 修改文件链接

android - 了解 Android 设备是纵向还是横向以供正常使用?

java - Android Studio 滑动到不同的 View

android - 嵌套 ViewFlipper