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

Check your manifest file. Your activity has probably noHistory=true attribute. If not then check flags where activity is starting.

于 2011-05-27T10:47:38.823 回答
1

我觉得这是状态的问题。只需创建一个哈希图并存储他们的最新视图。并编写一个设置视图的条件。如果 hashmap 中没有条目,则显示第一个屏幕,以便显示所需的屏幕。

如果你能对国家维护有更好的想法,那就更好了谢谢迪帕克

于 2011-05-27T11:12:32.213 回答
1

请检查您是否有处理主页按键事件。如果你写了你的 home key press 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 回答