2013-04-04 90 views
1

在这里,基本上我所做的只是检查连接是否可用。如果连接不可用,我将重定向到另一个activity.That是全部。但它不断崩溃。没有互联网的应用程序崩溃

Intent i; 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    i = new Intent(Jsouptesting3Activity.this, NoInternet.class); 
    Jsouptesting3Activity ob1=new Jsouptesting3Activity(); 
    ob1.isDataConnectionAvailable(this); 
    try { 
     doc = Jsoup.connect("http://www.way2franchise.com/").get(); 

     //System.out.println(doc); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     System.out.println("cant connect"); 
     e.printStackTrace(); 


public void isDataConnectionAvailable(Context context){ 
    ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo info = connectivityManager.getActiveNetworkInfo(); 
    if(info == null) 
    { 
     System.out.println("No net bob"); 
     i = new Intent(Jsouptesting3Activity.this, NoInternet.class); 
     startActivity(i); 

    } 
    System.out.println("YES net bob"); 

当程序执行,我根据它必须重定向和NoInternet活动应打开逻辑调用isDataConnectionAvailable(),我没有连接available.So。
我错过了什么严重?
请帮忙。

logcat的堆栈

Thread [<1> main] (Suspended (exception RuntimeException)) 
ActivityThread.performLaunchActivity(ActivityThread$ActivityClientRecord, Intent) line: 1659  
ActivityThread.handleLaunchActivity(ActivityThread$ActivityClientRecord, Intent) line: 1675 
ActivityThread.access$1500(ActivityThread, ActivityThread$ActivityClientRecord, Intent) line: 121 
ActivityThread$H.handleMessage(Message) line: 943 
ActivityThread$H(Handler).dispatchMessage(Message) line: 99 
Looper.loop() line: 130 
ActivityThread.main(String[]) line: 3701  
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method] 
Method.invoke(Object, Object...) line: 507 
ZygoteInit$MethodAndArgsCaller.run() line: 866 
ZygoteInit.main(String[]) line: 624 
NativeStart.main(String[]) line: not available [native method] 
+0

是什么logcat的说? – geoffspear 2013-04-04 11:26:56

+3

你的逻辑不正确...首先你不检查什么'isDataConnectionAvailable()'return ...其次,如果'info'为空,那么你不返回false,所以'Jsoup.connect(...)'仍然被调用... – Selvin 2013-04-04 11:27:03

+1

我甚至不知道从哪里开始,真的。这段代码有太多的错误...我怎么解释... – 2013-04-04 11:31:28

回答

1

检查isDataConnectionAvailable()建筑如果(isDataConnectionAvailable())

Jsouptesting3Activity ob1=new Jsouptesting3Activity(); 
    if(ob1.isDataConnectionAvailable(this)) 
{ 
    try { 
     doc = Jsoup.connect("http://www.way2franchise.com/").get(); 

     //System.out.println(doc); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     System.out.println("JSON Error"); 
     e.printStackTrace(); 
} 
else 
{ 
    System.out.println("cant connect"); 
} 
0

你应该检查isDataConnectionAvailable()施工

,我认为最好的办法就是不要检查连接,但检查doc,如果它等于空,然后打开另一个活动

0

您必须调用if条件的方法,以便它不会执行

if(ob1.isDataConnectionAvailable(this)) 
{ 
    try { 
     doc = Jsoup.connect("http://www.way2franchise.com/").get(); 

     //System.out.println(doc); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     System.out.println("cant connect"); 
     e.printStackTrace(); 
} 

和从isDataConnectionAvailable(this)返回的值。

相关问题