如何从两个活动启动Android应用程序

时间:2015-11-19 05:33:12

标签: android

我正在开发一个Android应用程序,我在其中使用我的手机号码在启动画面上注册。我想要的是注册应该只需要一次,并且在安装应用程序时第一次。安装应用程序后,应用程序应该从另一个活动打开,而不是从启动画面打开。怎么可能。

5 个答案:

答案 0 :(得分:4)

成功注册登录后,您必须将数据存储在SharedPreferences

AppTypeDetails是SharedPreferences的类。

 AppTypeDetails.getInstance(SignUpActivity.this).setEmail(<Your Email ID>);
 AppTypeDetails.getInstance(SignUpActivity.this).setPassword(<Your Password>);

<强> AppTypeDetails.java

import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;

public class AppTypeDetails {

    private SharedPreferences sh;

    private AppTypeDetails() {

    }

    private AppTypeDetails(Context mContext) {
        sh = PreferenceManager.getDefaultSharedPreferences(mContext);
    }

    private static AppTypeDetails instance = null;

    /**
     * 
     * @param mContext
     * @return {@link AppTypeDetails}
     */
    public synchronized static AppTypeDetails getInstance(Context mContext) {
        if (instance == null) {
            instance = new AppTypeDetails(mContext);
        }
        return instance;
    }

    // get username
    public String getEmail() {
        return sh.getString("email", "");
    }

    public void setEmail(String email) {
        sh.edit().putString("email", email).commit();
    }

    // get password
    public String getPassword() {
        return sh.getString("password", "");
    }

    public void setPassword(String password) {
        sh.edit().putString("password", password).commit();
    }

    public void clear() {
        sh.edit().clear().commit();
    }

}

现在在启动画面中查看以下代码。

String email = AppTypeDetails.getInstance(SplashScreen.this).getEmail();
String pass = AppTypeDetails.getInstance(SplashScreen.this).getPassword();

if (email.trim().isEmpty() && pass.trim().isEmpty()) {
    Intent intent = new Intent(SplashScreen.this, Login.class);
    startActivity(intent);
} else {
    Intent intent = new Intent(SplashScreen.this, MainScreenTabHost.class);
    startActivity(intent);
}

清除SharedPreferences

注销时调用clear()方法。

答案 1 :(得分:0)

在启动类中,您应该检查应用程序是否第一次运行。如果是,那么继续,如果没有,则开始第二个活动。可以通过检查布尔值,将其存储在共享首选项中,并在每次启动时检查其值。

答案 2 :(得分:0)

尝试使用SharedPrefrence.But它不是完整的答案。显示您的SplashScreen检查您的用户是否注册。

       Boolean REG_RESPONCE = new   Session_manag(getActivity()).IsSessionCheckOrCreated();
            if (REG_RESPONCE.equals(true)) {
                Intent toHomeactivity = new Intent(Splash.this, MainMenu.class);
                finish();
                startActivity(toHomeactivity);
            } else {

                Intent i = new Intent(Splash.this, SignUp.class);
                finish();
                startActivity(i);
            }

答案 3 :(得分:0)

这太容易处理了。您需要的是如何实现这一点的概念。所以我给你路线图,在互联网上搜索我要告诉你的事情。这些步骤如下

  1. 我认为这样做的简单方法是实现共享首选项。共享偏好有什么作用?他们会将您客户的信息存储到应用程序中,例如他的姓名,密码
  2. 因此,当Spalsh首先检查共享偏好设置中是否有值时,如果有值,则表示您的用户已经登录。
  3. 如果用户没有存储任何值,则表示您需要将他带到注册活动。
  4. 因此,通过这种方式,您可以将用户带到您想要的位置。但是没有办法同时使用两个活动。
  5. 您可以从here阅读共享偏好设置,this是一个很好的教程,可以帮助您入门。

答案 4 :(得分:0)

您可以在启动画面上检查用户已使用号码注册的条件,因为您必须在SharedPreferences中保存该号码。 请按照以下步骤进行操作

步骤1:当用户第一次打开应用程序启动画面时,你可以检查数字条件。第一次,当用户加入应用程序值(数字)时,在SharedPreference中不存在。所以app会要求输入数字。当用户输入数字并提交时,将其存储在SharedPreferences中。

步骤2:现在,第二次当用户进入启动画面时,该条件成为真,因为SharedPreferences具有值(数字)。所以你可以在第二个活动上重定向应用程序。