从另一项活动开始活动?

时间:2012-08-21 18:30:30

标签: android login android-activity android-dialog

我想在我的应用程序中使用此功能:

当我启动我的应用时

-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

我希望第一个活动只是执行检查。不可见,如果有互联网 然后转发登录活动,否则登录主要活动

这是因为我希望我的应用程序可以在没有interner的情况下使用。但对于已登录的用户,它将从Web服务下载一些信息以存储在Shared Preferences.Any help?

5 个答案:

答案 0 :(得分:1)

最好的方法是创建一个小功能,检查wifi和移动网络,如下所示: -

/**
 * 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和移动网络......

希望这个解释很有用......

答案 1 :(得分:0)

您需要使用startActivity()startActivityForResult()

startActivityForResult()的优势在于,您可以在完成后从您开始的活动中接收数据。

答案 2 :(得分:0)

只需创建第一个首先启动的活动,然后在该活动的onCreate上运行您的代码并调用其他活动。

此外,您可以在第三项活动中显示启动画面,同时决定要显示的活动。

答案 3 :(得分:0)

启动您的其他活动:

if(connection/login fails){

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

    else {.....}

答案 4 :(得分:0)

以下是我确保有wifi连接的方法:

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

if语句中插入Activity来电