活动没有在android中的后台运行

时间:2011-05-27 10:25:51

标签: android activity-stack

当点击主页按钮并再次重新启动应用程序时,它会从第一个屏幕开始,而不是停留在我离开的屏幕上。

感谢您的帮助。

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);
        }

}

3 个答案:

答案 0 :(得分: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);
    }

由于 迪帕克

答案 1 :(得分:1)

检查您的清单文件。您的活动可能属于noHistory=true属性。如果没有,则检查活动开始的标志。

答案 2 :(得分:1)

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

如果你能更好地了解州政府的弊端,那就更好了 谢谢 迪帕克