0
私はこのサイトで見たことがありますが、まだ幸運はありませんでした。私は、ユーザーがログインしているかどうかをチェックするMainActivityを持っています。 ActiveThreadFragmentというフラグメントを起動していなければ、ログイン画面を起動します。その後、ユーザーは資格情報を入力してサインインします。これは進捗状況を読み込んで、「Login Successful」というトーストで再度ログイン画面を表示します。私は間違って何をしていますか?おそらく本当に明白ですが、私のコードを見てください。アクティビティの読み込み回数2回onClick
MainActivity
if (PreferenceConnector.readString(this, "authToken") == null) {
Intent intent = new Intent(this, FirstLoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);
} else {
initUI();
}
if (PreferenceConnector.readString(this, "authToken") != null &&
PreferenceConnector.readString(this, "authToken").equalsIgnoreCase("skip")) {
SharedPreferences.Editor editor = PreferenceConnector.getEditor(this);
editor.clear();
editor.commit();
}
}
FirstLoginActivity
private void initUI() {
mLoginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final ProgressDialog progressDialog = ProgressDialog.show(FirstLoginActivity.this,
"Please wait", "Checking credentials", true);
progressDialog.setCancelable(true);
new Thread(new Runnable() {
@Override
public void run() {
try {
if (isDataValid()) {
sendCredentials();
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
} else {
Toast.makeText(getApplicationContext(), "Login Failed - Invalid Username and/or " +
"Password", Toast.LENGTH_LONG).show();
}
Thread.sleep(20000);
} catch (InterruptedException e) {
e.printStackTrace();
}
progressDialog.dismiss();
}
}).start();
}
});
mSkipText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PreferenceConnector.writeString(getApplicationContext(), "authToken", "skip");
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
}
});
}
AndroidManifest
<activity android:name=".activity.FirstLoginActivity"
android:label="@string/app_name"
android:launchMode = "singleInstance">
</activity>
感謝事前にD
ウィッヒアクティビティを書く
読みますか? –
@BOUTERBIAT FirstLoginActivityを – BilalMH
'PreferenceConnector.readString(this、" authToken ")'を 'null'以外のものに設定したことがありますか?他のアクティビティに戻ると思われますか?また、 'Thread.sleep(20000);'は無関係です。チェックが完了した後、ダイアログが閉じられる前に20秒間スリープ状態になっています。 –