gpt4 book ai didi

Java错误api级别的方法

转载 作者:太空狗 更新时间:2023-10-29 13:18:53 25 4
gpt4 key购买 nike

我得到一个错误

java.lang.NoSuchMethodError: android.app.Activity.isDestroyed

这与仅在 api 17 或更高版本的设备上运行有关,是否有解决此问题的方法?

       private WeakReference<Activity> mActivityRef;

@Override
public void onFinish() {

Activity activity = mActivityRef.get();
// if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
//do your thing!

if (activity != null && !activity.isFinishing() && !activity.isDestroyed()) {
activity.startActivity(new Intent(activity, ListOfAlarms.class));
activity.finish();
}
mStarted = false;

// }
// Intent goBack = new Intent(CountDownAct.this, ListOfAlarms.class);
// startActivity(goBack);
// finish();
}

最佳答案

此 API 仅在 API 级别 17 中添加 Check this!

为避免崩溃,您可以使用以下代码进行验证

if(Build.VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN_MR1){
//do your thing!
}

要让它在较低的 API 级别上工作,您可以创建自己的 BaseActivity.java 并添加这样的代码

public class BaseActivity extends Activity {
private boolean mDestroyed;

public boolean isDestroyed(){
return mDestroyed;
}

@Override
protected void onDestroy() {
mDestroyed = true;
super.onDestroy();
}
}

现在,让您的所有 Activity 按如下方式扩展此 BaseActivity

public class MainActivity extends BaseActivity {
...
}

希望对您有所帮助!如果对您有用,请接受此答案:)

编辑(OP 添加代码 fragment 后)

首先创建一个 BaseActivity.java 文件,如上所示。然后,让您的所有 Activity 扩展 BaseActivity 而不是 Activity

现在,改变

private WeakReference<Activity> mActivityRef;

private WeakReference<BaseActivity> mActivityRef;

并改变

Activity activity = mActivityRef.get();

BaseActivity activity = mActivityRef.get();

关于Java错误api级别的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31520242/

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