提问人:wiefunkdai 提问时间:9/19/2023 最后编辑:wiefunkdai 更新时间:9/20/2023 访问量:39
如何在 Java Android 上的任何任务之前运行事件?
How to Run Event before any task on Java Android?
问:
我有代码,并用这个代码为退出申请工作:
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();
});
}
}
我想在退出应用程序之前运行事件关闭或等待进度任务,该怎么办?但是它是脚本强制退出应用程序,而没有运行事件之前?
答:
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。
评论