0

私のアプリケーションには、この機能が必要です。

アプリを起動すると

-check if there is interne access : if yes {
                                        start LogInActivity { if login is succesfull
                                                              dialog:"synced!" for 3second
                                                             else
                                                               dialog:"no synced!" for 3second
                                                                  }
                                    }
                                        dialog:"no synced!"
                                        startMainActivity

最初のアクティビティでチェックを実行するだけにします。表示されないようにします。インターネットがある場合はログインに転送します。それ以外の場合はメインアクティビティにログインします。

これは、インターネットを使用せずにアプリを使用したいためですが、ログに記録されたユーザーの場合、共有設定に保存される情報がWebサービスからダウンロードされます。

4

5 に答える 5

1

最良の方法は、次のようにWi-Fiとモバイルネットの両方をチェックする小さな関数を作成することです:-

/**
 * Function to check whether internet connection is available or not
 * 
 * @return true - if net is available
 */
public boolean haveNetworkConnection() {
    mHaveConnectedWifi = false;
    mHaveConnectedMobile = false;

    mConnectivityManager = (ConnectivityManager) mContext
            .getSystemService(Context.CONNECTIVITY_SERVICE);
    mNetworkInfo = mConnectivityManager.getAllNetworkInfo();

    for (NetworkInfo mNetInfo : mNetworkInfo) {
        if (mNetInfo.getTypeName().equalsIgnoreCase("WIFI"))
            if (mNetInfo.isConnected())
                mHaveConnectedWifi = true;
        if (mNetInfo.getTypeName().equalsIgnoreCase("MOBILE"))
            if (mNetInfo.isConnected())
                mHaveConnectedMobile = true;
    }
    return mHaveConnectedWifi || mHaveConnectedMobile;
}

今あなたのコードでちょうどしなさい:-

if(haveNetworkConnection){
// do something
}else{
    // no internet
}

利点は、wifiとモバイルネットの両方をチェックしていることです...

説明がお役に立てば幸いです。

于 2012-10-04T08:32:01.020 に答える
0

startActivity()またはを使用することをお勧めしますstartActivityForResult()

利点はstartActivityForResult()、開始したアクティビティが完了すると、そのアクティビティからデータを受け取ることができることです。

于 2012-08-21T18:32:58.067 に答える
0

最初に開始する3番目のアクティビティを作成し、そのアクティビティのonCreateでコードを実行して、他のアクティビティを呼び出します。

また、表示するアクティビティを決定するときに、この3番目のアクティビティにスプラッシュ画面を表示することもできます。

于 2012-08-21T18:44:12.820 に答える
0

他のアクティビティを開始するには:

if(connection/login fails){

                    Intent loginfailed = new Intent(MainActivity.this, loginfailedactivity.class);
                    startActivity(loginfailed);
      }

    else {.....}
于 2012-08-21T18:54:29.033 に答える
0

Wi-Fi接続があることを確認するために私がしたことは次のとおりです。

private void checkWifiConnection(String menuUrl){

    ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
    NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

    if(mWifi.isConnected()){
        LoadJSON lJs = new LoadJSON(); 
        lJs.execute(menuUrl); 
    } else {
        AlertDialog.Builder ab = new AlertDialog.Builder(context); 
        ab.setCancelable(true);
        ab.setTitle("No Connection"); 
        ab.setMessage("Your device is currently not connected to the Internet, please check your connection and launch the app again."); 
        ab.setInverseBackgroundForced(true); 
        ab.setPositiveButton("Okay", new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss(); 
                MainActivity.this.finish(); 


            }
        }); 

        AlertDialog alert =  ab.create(); 
        alert.show(); 


    }

ステートメントにIntent呼び出しを挿入して、ifActivity

于 2012-08-21T18:59:11.987 に答える