Приложение в обход экрана входа, даже если оно не должно - PullRequest
0 голосов
/ 03 марта 2012

Всякий раз, когда я запускаю свое приложение, даже из нового эмулятора с уже созданными файлами, оно все равно выполняет бит кода, который говорит, что если файл был создан для этого намерения, я не понимаю, это не должно, я у меня нет возможности проверить, потому что у меня есть iPhone, а не телефон Android, теоретически код не должен вызываться, только при второй загрузке приложения.

Спасибо!

Код:

Public class LogIn extends Activity implements OnClickListener {
    Button send;
    EditText user;
    EditText pass;
    CheckBox staySignedIn;
    FileOutputStream Fos;
    String a;
    String b;
    String string = a;
    String string2 = b;
    String DANNYISREALLLLYYYGAAYYYYYIMNOTBS;

    String FILENAME = "userandpass";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login);
        send = (Button) findViewById(R.id.bLogIn);
        user = (EditText) findViewById(R.id.eTuser);
        pass = (EditText) findViewById(R.id.eTpassword);
        staySignedIn = (CheckBox) findViewById(R.id.Cbstay);
        send.setOnClickListener(this);
        File file = getBaseContext().getFileStreamPath(FILENAME);
        if (file.exists());
        Intent i = new Intent(LogIn.this, ChatService.class);
        startActivity(i);}      


    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {
        case R.id.bLogIn:
            if (pass.length() == 0)
                Toast.makeText(this,
                        "Try to type in your username and password again!",
                        Toast.LENGTH_LONG).show();
            else if (user.length() == 0)
                Toast.makeText(this,
                        "Try to type in your username and password again!",
                        Toast.LENGTH_LONG).show();
             {
                 if (staySignedIn.isChecked()) {

                String a = user.getText().toString();
                String b = pass.getText().toString();
                File f = new File(FILENAME);
                try {
                    Fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
                    if (Fos != null) {
                    Fos.write(a.getBytes());
                    Fos.write(b.getBytes());
                    }
                    Fos.close();
                } catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }finally  {
                        String u = user.getText().toString();
                        String p = pass.getText().toString();
                        Bundle send = new Bundle();
                        send.putString("key", u);
                        send.putString("key1", p);
                        Intent c = new Intent(LogIn.this, logincheck.class);
                        c.putExtra("key", u);
                        c.putExtra("key1", p);
                        startActivity(c);
                        Toast.makeText(this, "Were signing you in!", Toast.LENGTH_LONG)
                                .show();
                        if (!staySignedIn.isChecked()) {
                            finish();

                        break;
                        }
                }
                 }
             }





            }
        }
    }

Ответы [ 2 ]

0 голосов
/ 03 марта 2012

Как говорит jbowes, удалите точку с запятой, нет смысла, что ваше приложение должно аварийно завершить работу если у вас есть код таким образом

if (file.exists())
{
        Intent i = new Intent(LogIn.this, ChatService.class);
        startActivity(i);
}

Если это все еще дает сбой, скажите мне, что выдается исключение

0 голосов
/ 03 марта 2012

У вас есть точка с запятой после теста: if (file.exists()); Который будет считаться блоком для запуска, если условие истинно. Просто удалите точку с запятой, и все будет в порядке.

...