gpt4 book ai didi

android - Helper 类 - 错误无法启动 Activity ComponentInfo :

转载 作者:行者123 更新时间:2023-11-30 04:25:01 26 4
gpt4 key购买 nike

错误无法启动 Activity ComponentInfo:java.lang.IllegalStateException:系统服务在onCreate()之前对 Activity 不可用

我正在尝试分离代码和使用辅助类。 (创建不同的 Java 文件)我所做的是创建一个在 list 中注册的 Activity Java 文件,但我没有注册以下类(Java 文件):

import android.app.Activity;
import android.location.LocationManager;
import android.net.ConnectivityManager;
....


public class DeviceMonitor extends Activity {

boolean laag=false;
int level=-1;
double batterylevel=-1;


public boolean GPSEnabled() {

final LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

if ( !manager.isProviderEnabled( LocationManager.GPS_PROVIDER ) ) { // NO GPS ENABLED
//ErrorMessage.append(R.string.enablegps);
//ErrorMessage.append("\n");
Log.d("StartPrepare","GPS DISABLED");
return false;
} else {
Log.d("StartPrepare","GPS ENABLED");
return true;
}
}

我删除了 OnCreate() 方法,这是否正确?我是否应该在 Manifest 中注册,如果是,如何注册?

我从这样注册的 Activity 调用时收到以下错误:

DeviceMonitor MyDevice = new DeviceMonitor();
if (MyDevice.GPSEnabled()){gpsenabled=true;}else{gpsenabled=false;fout=true;}

错误:

E/AndroidRuntime(1912): java.lang.RuntimeException: Unable to start activity ComponentInfo{package}: java.lang.IllegalStateException: System services not available to Activities before onCreate()

任何人都可以给我一些帮助类的信息(我是 Java/Android 的新手)并且知道错误可能导致什么?我尝试添加 OnCreate() 方法,但没有帮助。

非常感谢!

最佳答案

不要这样做...

DeviceMonitor MyDevice = new DeviceMonitor();

DeviceMonitor 扩展了 Activity,您永远不应使用 new 创建 Activity 的实例。 Android Activity 是一个特例类,不应将其视为普通 Java 类。

如果您想启动一个Activity,您需要使用startActivity...) 或其他“启动”方法之一。

如果您想要一个“助手”类,只需创建一个不扩展任何内容的标准 Java 类即可。当您从主 Activity 创建它的实例时,在其构造函数中将 Activity Context 传递给它,然后使用它来访问 Android 服务等. 示例...

public class DeviceMonitor {

Context mContext = null;

public DeviceMonitor (Context context) {
mContext = context;
}
}

编辑: 要创建您的助手并从您的主要 Activity 传递一个 Context,请执行此操作...

// An Activity IS a Context so pass 'this'
DeviceMonitor MyDevice = new DeviceMonitor(this);

关于android - Helper 类 - 错误无法启动 Activity ComponentInfo :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8661729/

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