1

ここで、基本的に私がしているのは、接続が利用可能かどうかを確認することだけです.接続が利用できない場合は、別のアクティビティにリダイレクトしています.それだけです.しかし、クラッシュし続けます.

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");

プログラムの実行中、私は呼び出し isDataConnectionAvailable()を行っていますが、利用できる接続がありません。したがって、ロジックによれば、リダイレクトする必要があり、NoInternet アクティビティを開く必要があります。
私は深刻な何かを逃していますか?
助けてください。

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]  
4

3 に答える 3

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");
}
于 2013-04-04T11:46:03.617 に答える
0

構築として isDataConnectionAvailable() をチェックする必要がありますif (isDataConnectionAvailable())

最良の方法は接続をチェックしないことだと思いますが、docそれがnullに等しい場合はチェックしてから、別のアクティビティを開きます

于 2013-04-04T11:32:14.303 に答える
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)

于 2013-04-04T11:33:15.447 に答える