我在 Android 应用程序中使用以下代码来监控网络连接。
ConnectivityManager conMgr =
(ConnectivityManager)this.getSystemService(Context.CONNECTIVITY_SERVICE);
如果我在任何活动中,此代码效果很好,而如果我在通用类中,则无法调用该方法
获取系统服务
我该如何解决这个问题?
我在 Android 应用程序中使用以下代码来监控网络连接。
ConnectivityManager conMgr =
(ConnectivityManager)this.getSystemService(Context.CONNECTIVITY_SERVICE);
如果我在任何活动中,此代码效果很好,而如果我在通用类中,则无法调用该方法
获取系统服务
我该如何解决这个问题?
如果你想getSystemService
在非活动类中访问,那么只需使用构造函数将当前活动上下文传递给非活动类:
public class nonActivity{
Context context;
ConnectivityManager conMgr ;
pulblic nonActivity(Context context){
this.context=context;
// now get getSystemService as :
this.conMgr =
(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
}
}
并将当前活动上下文传递给非活动类:
nonActivity nonactivityobj=new nonActivity(Your_Current_Activity.this);
当您当时调用泛型类时,您必须在其中传递活动的上下文。
所以你可以访问getSystemService
代码 :-
public class Test
{
Context context;
ConnectivityManager connectivityManager ;
pulblic Test(Context context)
{
this.context=context;
connectivityManager =
(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
}
}
并从活动类传递如下上下文。
Test test = new Test(CurrentActivity.this);
使用 Context 而不是这个,它将解决您的问题并在课堂上写下一行而不是您的代码行。
ConnectivityManager conMgr = (ConnectivityManager)Context.getSystemService(Context.CONNECTIVITY_SERVICE);