Я предполагаю, что вы хотите вызывать свою активность входа в систему с помощью startActivityForResult, когда ваше приложение запускается в первый раз. Вы можете использовать этот скелет и заполнить пробелы:
public class YourLoginActivity extends Activity {
private ProgressDialog executingDialog;
private Button loginButton;
private EditText username, password;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.login);
loginButton = (Button) this.findViewById(R.newTransaction.loginButton);
loginButton.setOnClickListener(new LoginButtonListener());
username = (EditText) findViewById(R.login.username);
password = (EditText) findViewById(R.login.password);
}
private class LoginButtonListener implements OnClickListener {
@Override
public void onClick(View v) {
executingDialog = ProgressDialog.show(this, "", getString(R.string.message_executingLogin), true);
new Thread() {
public void run() {
try {
HttpClient httpClient = HttpClient.getInstance();
Response response = httpClient.doLogin(username.getText().toString(), password.getText().toString());
if(response.getCode() == 200){
// TODO: insert more checks, e.g. validating the answer here!
handler.post(loginDone);
}
else {
// TODO: handle error codes etc.
handler.post(loginFailed);
}
} catch (Exception e) {
Log.e(TAG, "", e);
handler.post(loginFailed);
}
}
}.start();
}
}
private final Runnable loginDone = new Runnable() {
public void run() {
executingDialog.dismiss();
setResult(RESULT_OK);
finish();
}
};
private final Runnable loginFailed = new Runnable() {
public void run() {
executingDialog.dismiss();
// TODO: show error dialog
}
};
Я бы предложил реализовать одноэлементную оболочку вокруг HttpClient. И если вы перехватываете запуск с представлением входа в систему, убедитесь, что вы добавили к нему атрибут « android: noHistory ».