如何在 Java Android 上的任何任务之前运行事件?

How to Run Event before any task on Java Android?

提问人:wiefunkdai 提问时间:9/19/2023 最后编辑:wiefunkdai 更新时间:9/20/2023 访问量:39

问:

我有代码,并用这个代码为退出申请工作:

class Example extends Dialog {
    @Override
    public void dismiss() {
        super.dismiss();
        if (isForceExists != false) {
            int id = android.os.Process.myPid();
            android.os.Process.killProcess(id);
        }
    }
}

但。。当我想在退出应用程序不起作用之前运行其他事件时(跳过事件)。

class ExampleActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
       Example exDialog = new Example();
       exDialog.setDismissListener(new OnDismissListener() {
           AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
           builder.setTitle("Exit Application")
                 .setMessage("Thank you for using this application, happy nice day ^_^")
                 .show();
       });
    }
}

我想在退出应用程序之前运行事件关闭或等待进度任务,该怎么办?但是它是脚本强制退出应用程序,而没有运行事件之前?

Android 线程同步 android 事件

评论


答:

0赞 Sarah 9/19/2023 #1

您应该在 Example 类或 ExampleActivity 本身中处理事件逻辑,而不是在显示对话框时尝试在 ExampleActivity 的 onCreate 方法中运行事件。

修改 Example 类以包含 dismiss 事件的回调:

class Example extends Dialog {
    private OnDismissListener dismissListener;

    public void setDismissListener(OnDismissListener listener) {
        this.dismissListener = listener;
    }

    @Override
    public void dismiss() {
        if (dismissListener != null) {
            dismissListener.onDismiss(this);
        }
        super.dismiss();
    }
}

修改 ExampleActivity 以实现 OnDismissListener 接口,并重写其 onDismiss 方法,以便在退出应用程序之前执行所需的事件:

import android.app.Activity;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.widget.Toast;

public class ExampleActivity extends Activity implements DialogInterface.OnDismissListener {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Example exDialog = new Example(this);
        exDialog.setDismissListener(this);
        exDialog.show();
    }

    @Override
    public void onDismiss(DialogInterface dialog) {
        // This method will be called before the dialog is dismissed.
        // You can perform your desired event here.
        // For example, showing a Toast message.
        Toast.makeText(this, "Before exit event executed.", Toast.LENGTH_SHORT).show();
        
        // After the event, you can exit the application if needed.
        finish();
    }
}

此方法可确保在关闭对话框时,事件在应用程序退出之前运行。

评论

0赞 wiefunkdai 9/19/2023
谢谢您的回答,但是如果我使用此代码。当许多 Activity Intent 运行时,“我的应用程序”不会强制退出应用程序。
0赞 wiefunkdai 9/19/2023
如果我运行许多意图活动,示例:''' 意图 myIntent = new Intent(CurrentActivity.this, NextActivity.class);CurrentActivity.this.startActivity(我的意向);''' 并在最后一个活动时运行对话框,然后只在最后一个活动完成。但不是所有的“活动”或“退出应用程序”。
0赞 wiefunkdai 9/20/2023
我的手段是希望从 Activity 的 OnDismiss 中制作回调函数来关闭方法示例 Dialong。