1

我在 Android 应用程序中使用以下代码来监控网络连接。

 ConnectivityManager conMgr = 
       (ConnectivityManager)this.getSystemService(Context.CONNECTIVITY_SERVICE);

如果我在任何活动中,此代码效果很好,而如果我在通用类中,则无法调用该方法

获取系统服务

我该如何解决这个问题?

4

3 回答 3

2

如果你想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);
于 2012-12-28T11:32:28.697 回答
1

当您当时调用泛型类时,您必须在其中传递活动的上下文

所以你可以访问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);
于 2012-12-28T11:33:08.913 回答
1

使用 Context 而不是这个,它将解决您的问题并在课堂上写下一行而不是您的代码行。

ConnectivityManager conMgr = (ConnectivityManager)Context.getSystemService(Context.CONNECTIVITY_SERVICE);
于 2012-12-28T11:33:42.097 回答