android - 如何在继续之前等待 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 完成后运行。如何让主线程等待?
解决方案
如果你有一个单独的权限检查类,那么做这样的事情。注意:我只是在解释基本概念。根据您的要求进行更改。
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
}
}
推荐阅读
- python - Titan RTX 上的矩阵乘法基准测试,具有双精度和单精度
- ruby-on-rails - Ruby on Rails - 订单不与 distinct.pluck 一起使用
- linux - 安装 OpenCV 错误 libtiff5-dev : Depends: liblzma-dev 但它不会被安装
- list - Dart 将项目列表组合成不同的数据结构?
- mysql - 如何在 Quarkus for Liquibase 中定义两个不同的数据库用户
- javascript - 过滤包含特定值的数组中的每个字符串
- ruby-on-rails - 是否可以指定链式范围查询的顺序
- c# - 如何在 ASP Web Api 中将多个键传递给数组?
- javascript - 如何在鼠标位置跟踪的父元素内移动子元素
- git - 如何更新 Github 克隆存储库?