Я хочу внедрить экран входа в свое приложение и ищу лучшую практику.Предположим, этот код:
public class LoginActivity extends Activity {
public void onCreate(Bundle icicle){
super.onCreate(icicle);
setContentView(R.layout.activity_login);
Button btnLogin=(Button)findViewById(R.id.btnLogin);
btnLogin.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
startActivity(new Intent(getApplicationContext(), MainActivity.class));
}
});
}
}
public class MainActivity extends Activity {
public void onCreate(Bundle icicle){
super.onCreate(icicle);
setContentView(R.layout.activity_main);
Button btnLogout=(Button)findViewById(R.id.btnLogout);
btnLogout.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
startActivity(new Intent(getApplicationContext(), LoginActivity.class));
}
});
}
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".LoginActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>
Это будет работать при первом запуске приложения, я запомню пароль.Но в следующий раз, когда пароль уже существует в хранилище приложения, я не хочу показывать LoginActivity.Итак, единственное решение, которое у меня есть:
public class LoginActivity extends Activity {
public void onCreate(Bundle icicle){
super.onCreate(icicle);
setContentView(R.layout.activity_login);
Button btnLogin=(Button)findViewById(R.id.btnLogin);
btnLogin.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
startActivity(new Intent(getApplicationContext(), MainActivity.class));
}
});
//consider that passwodExists() looks for credentials
if(passwodExists()){
finish();
startActivity(new Intent(getApplicationContext(), MainActivity.class));
}
}
}
Это приемлемо?
- Что бы вы использовали для такой проблемы?
- Безопасно ли запускать Activity или показывать диалог из onCreate ()?