私はあなたの要件をすべて読みました。それを達成するには、以下に示すようにアプリケーションのフローを操作するだけで済みます.
アプリケーションの起動中に起動されるログイン画面内で、
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
UTILS.Log_e(TAG, "onCreate");
initialize();
//check for configuration
//here you need to check,whether user has been logged in already or not
if(!CONSTANTS.isConfigured)
{
//display login dialog if user has not been logged in already
displayLoginDialog();
}
else
{
//move to Home screen if user has already logged in
i.setClass(mContext, HomeActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
finish();
}
}
ホーム画面内で、
@Override
public void onBackPressed() {
exitApp();
}
private void exitApp()
{
i.setClass(mContext, ExitActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
finish();
}
//call logout function as per your requirement
private void logout()
{
i.setClass(mContext, LoginActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
finish();
}
ExitActivity 内で、
public class ExitActivity extends Activity{
private static final String TAG = "ExitActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
moveTaskToBack(true);
finish();
}
}
注:
上記のコードでは、 のインスタンスである を使用i.setClass(context,destination_class_name)
しました。i
Intent
マニフェスト内で、
<activity
android:name=".ui.LoginActivity"
android:label="@string/app_name"
android:windowSoftInputMode="stateHidden|adjustPan">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ui.HomeActivity" >
</activity>
<activity
android:name=".ui.ExitActivity" >
</activity>
問題が発生した場合、または上記のコードで理解できない点がありましたら、お知らせください。