2015-09-05 52 views
1

我使一些代码刷新MainActivity当互联网来临时的活动,但我有问题,当我在活动中放置某种方法来进行刷新活动时,它总是返回null。 我叫做活动方法upadetStateConnectionInternetReceiver类,当互联网来临。刷新互联网即将到来的活动

MainActivity

public class MainActivity extends ActionBarActivity { 
@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 
public void upadetStateConnection() { 
     Intent intent = getIntent();///null 
     finish(); 
     startActivity(intent); 
    } 

用于检查连接类是来还是不来:

public class InternetReceiver extends BroadcastReceiver { 
    public void notificationStateInternet() { 
     MainActivity kl= new MainActivity(); 
     kl.upadetStateConnection(); 
    } 

    //check state internet 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     ConnectivityManager connectivityManager = (ConnectivityManager) 
       context.getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo activeNetInfoWifi = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 
     NetworkInfo activeNetInfoMobile = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 
     boolean isConnected = (activeNetInfoWifi != null && activeNetInfoWifi.isConnectedOrConnecting()) || (activeNetInfoMobile != null && activeNetInfoMobile.isConnectedOrConnecting()); 
     Bundle bundle = new Bundle(); 
     bundle.putSerializable("MyData", true); 
     if (isConnected) { 
      notificationStateInternet(); 
      Log.i("NET", "connecte" + isConnected); 
     } else { 

      Log.i("NET", "not connecte" + isConnected); 
     } 
    } 
} 
+0

是到达onRecieve? –

回答

0

这里:

MainActivity kl= new MainActivity(); 
kl.upadetStateConnection(); 

这些行引起问题,因为尝试通过创建正在扩展的类的对象来访问方法Activity并且为什么getIntent()方法调用总是返回nullNullPointerException,因为上下文无效。

code to refresh MainActivity activity when internet is coming

InternetReceiver类作为内部类的MainActivity然后调用从内部类upadetStateConnection方法,无需像创建对象:

public void notificationStateInternet() { 
     upadetStateConnection(); 
    } 
+0

非常感谢帮助我。 –

0

启动活动作为

Intent intent = new Intent(MainActivity.this,MainActivity.class); 
startActivity(intent); 
finish(); 
+0

显示我的错误:com.android.tofi.mohammad.popularmovies.MainActivity.upadetStateConnection(MainActivity.java:35) at java.lang.RuntimeException:无法启动接收器com.android.tofi.mohammad.popularmovies.InternetReceiver: java.lang.NullPointerExceptionat com.android.tofi.mohammad.popularmovies.MainActivity.upadetStateConnection(MainActivity.java:35) com.android.popularmovies.InternetReceiver.notificationStateInternet(InternetReceiver.java:18) at com.android.tofi。 mohammad.popularmovies.InternetReceiver.onReceive(InternetReceiver.java:35) –