首页 > 解决方案 > 如何在继续之前等待 Java 类的活动完成?

问题描述

我有一个平面 java 类,它在构造函数中接受一个 Activity。现在有了这个活动,我开始另一个活动以获得一些权限。现在我想等待此活动完成,然后再继续下一步。

public final class Test{
@NonNull
private final Activity activity;

public Test(final Activity activity) {
    this.activity = activity;
}

public void initialize() {
    try {
        if(isEnabled) {
            this.activity.startActivity(new Intent(this.activity, CheckPermissionsActivity.class));
        }

FileUtils.readFile(Constants.XX+ Constants.YY);

}

我想让这个 readFile 方法在 CheckPermissionsActivity 完成后运行。如何让主线程等待?

标签: android

解决方案


如果你有一个单独的权限检查类,那么做这样的事情。注意:我只是在解释基本概念。根据您的要求进行更改。

    Intent intent = new Intent(this, CheckPermissionsActivity.class);
    startActivityForResult(intent, 101);//101=requestCode

        // write this according to your requirements in CheckPermissionsActivity 
          Intent i = new Intent();
            i.putExtra("result", mString);
            if (mString.length() > 2) {
                setResult(Activity.RESULT_OK, i);
            } else {
                setResult(Activity.RESULT_CANCELED, i);
            }
            finish();


        // in your main activity use this callback and use in your Test class
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
                    super.onActivityResult(requestCode, resultCode, data);

                    if (requestCode == 101 && data != null) {
            // write your code here
            }
}

推荐阅读