1

ホームボタンをクリックしてアプリを再起動すると、離れた画面にとどまらず、最初の画面から起動します。

手伝ってくれてありがとう。

public class WelcomeScreen extends Activity implements OnClickListener {
    /** Called when the activity is first created. */
    private Button signUp,login;
    private RelativeLayout relative;
    GlobalVariable global;

    @Override
    public void onCreate(Bundle savedInstanceState)
        {
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            requestWindowFeature(Window.FEATURE_PROGRESS);
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            global=(GlobalVariable)getApplicationContext();
            signUp=(Button)findViewById(R.id.signUp);
            login=(Button)findViewById(R.id.login);
            relative=(RelativeLayout)findViewById(R.id.welcome_panel);
            signUp.setOnClickListener(WelcomeScreen.this);
            login.setOnClickListener(WelcomeScreen.this);   
        }
    @Override
    public void onResume()
    {
        super.onResume();
        Toast.makeText(WelcomeScreen.this, "  onResume called", Toast.LENGTH_SHORT).show();
    }
    @Override
    public void onPause()
    {
        super.onPause();
        Toast.makeText(WelcomeScreen.this, "  onPause called", Toast.LENGTH_SHORT).show();
    }
    /*
     * Button Onclick event for signup and login button
     * 
     */
    public void onClick(View v) 
    {

            if(v==signUp)
            {
                Intent signupPanel=new Intent(WelcomeScreen.this,SignupPanel.class);
                startActivity(signupPanel);
                callNull();
            }
            else if(v==login)
            {
                //start a login screen              
                Intent loginPanel=new Intent(WelcomeScreen.this,LoginPanel.class);
                startActivity(loginPanel);
                callNull();
            }

    }

    public void callNull()
    {   
        this.finish();  
    }
    @Override
    public void onDestroy()
    {
        super.onDestroy();
        Toast.makeText(WelcomeScreen.this, " on destroy called", Toast.LENGTH_SHORT).show();
        System.gc();
        relative.setBackgroundDrawable(null);
        login.setBackgroundDrawable(null);
        signUp.setBackgroundDrawable(null);

    }
     public boolean onKeyDown(int keyCode, KeyEvent event) 
        {
              if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) 
              {
                  //  android.os.Process.killProcess(android.os.Process.myPid());


                    return true;
              }

              return super.onKeyDown(keyCode,event);
        }

}
4

3 に答える 3

1

マニフェスト ファイルを確認します。あなたの活動にはおそらくnoHistory=true属性があります。そうでない場合は、アクティビティが開始されているフラグを確認します。

于 2011-05-27T10:47:38.823 に答える
1

ホーム キー プレス イベントを処理しているかどうかを確認してください。ホーム キー プレス wvent を書いている場合、この問題が発生する可能性があると思います。

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub

        if (keyCode == KeyEvent.KEYCODE_HOME){
            // did you write your code to launc your application here
        }
        return super.onKeyDown(keyCode, event);
    }

ありがとうディーパック

于 2011-05-27T10:31:08.677 に答える
1

それは言動の問題だと思います。ハッシュマップを作成し、最新のビューを保存するだけです。ビューを設定する条件を記述します。ハッシュマップにエントリがない場合は、最初の画面も表示して、目的の画面を表示します。

状態の維持についてより良いアイデアを得ることができれば、それはより良いものになるでしょうありがとうDeepak

于 2011-05-27T11:12:32.213 に答える