【问题标题】:How to wait for an activity to complete from java class before proceeding?如何在继续之前等待 Java 类的活动完成?
【发布时间】:2020-02-24 06:49:30
【问题描述】:

我有一个平面 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


    【解决方案1】:

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

        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
                }
    }
    

    【讨论】:

    • 因为这个(测试类)不是一个活动,所以 onActivityResult 没有被击中。只有当我们从另一个活动中调用一个活动时,它才会起作用。调用活动不同,我无法使用它。 :(
    • 您可以在 Activity 类中初始化 Test 对象时传递 Activity 引用。一旦您将在 Activity 中使用其对象通知 Test 类中的回调。
    • 我无权访问 Activity 类。我正在开发sdk。他们只是通过活动的地方。
    • 到目前为止,您可以要求用户传递这样的结果。 Test.activityResult(requestCode,resultCode,data);我正在为你检查最好的方法。
    • 请把这个类作为参考,github.com/ParkSangGwon/TedPermission/blob/master/tedpermission/…或者上面的评论。使用 Activity 扩展您的 Test 类。
    猜你喜欢
    • 1970-01-01
    • 2015-09-16
    • 2020-02-24
    • 1970-01-01
    • 1970-01-01
    • 2019-03-12
    • 2010-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多