gpt4 book ai didi

java - 从非 Activity 中使用 startActivityForResult

转载 作者:IT老高 更新时间:2023-10-28 11:48:37 25 4
gpt4 key购买 nike

我有 MainActivity 这是一个 Activity 和其他类(这是一个简单的 java 类),我们称之为“SimpleClass”。

现在我想从那个类运行命令 startActivityForResult

虽然我可以只使用 MainActivity 的上下文传递那个类 (SimpleClass),但问题是我们无法运行 context.startActivityForResult(...);

因此,使 SimpleClass 使用 startActivityForResult 的唯一方法是将 MainActivity 的引用作为 Activity 变量传递给 SimpleClass。

类似的东西:

在 MainActivity 类中,我这样创建了 SimpleClass 的实例:

SimpleClass simpleClass = new SimpleClass(MainActivity.this);

现在,SimpleClass 是这样的:

public Class SimpleClass {

Activity myMainActivity;

public SimpleClass(Activity mainActivity) {
super();
this.myMainActivity=mainActivity;
}
....


public void someMethod(...) {
myMainActivity.startActivityForResult(...);
}

}

现在它正在工作,但没有正确的方法吗?恐怕我以后可能会出现一些内存泄漏。

最佳答案

我不知道这是否是好的做法,但是将 Context 对象转换为 Activity 对象 可以正常编译。

试试这个:

if (mContext instanceof Activity) {
((Activity) mContext).startActivityForResult(...);
} else {
Log.e("mContext should be an instanceof Activity.");
}

这应该编译,结果应该传递给持有上下文的实际 Activity 。

关于java - 从非 Activity 中使用 startActivityForResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2848775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com