【发布时间】:2018-01-27 11:11:08
【问题描述】:
我想稍微清理一下我的 Main 活动类并将一些代码转移到其他类,以使我的代码更易于阅读。 我遇到了这样的情况
MainActivity 类
public class MainActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
getData("2B1A4D3C");
}
public void getData(String Hex) {
Static staticClass = new Static();
if (staticClass.isNetworkAvailable(MainActivity.this) == true) {
staticClass.setData(response);
}
}
}
二等
class Static extends AppCompatActivity {
public boolean isNetworkAvailable(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager)
getSystemService(context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo =
connectivityManager.getActiveNetworkInfo();
if ( activeNetworkInfo != null ) {
return true;
} else {
return false;
}
}
当我像这样传递上下文时 -> isNetworkAvailable(MainActivity.this) 我遇到了崩溃。并得到一个错误
系统服务在onCreate()之前对Activity不可用
什么是传递上下文的正确方法?
【问题讨论】:
-
onCreate 必须在静态类中调用,然后才能调用连接管理器。不要扩展 AppCompatActivity,而是使用上下文实例
标签: java android service system android-context