单击后退按钮后,在android中保存复选框状态

时间:2013-06-20 13:11:11

标签: android

我正在使用复选框来保存数据库中的数据。如果检查然后应用程序重定向到其他屏幕,之后保存数据,如果我点击设备后退按钮然后应用程序显示它未检查。我可以解决此问题? 我在这里放置代码

public void joinLisn(){
    String shareProfileType2=Constants.PROFILE_SHARE_ALL;
    String accessToken = null;
    DatabaseHelper helper = new DatabaseHelper(getApplicationContext());
    DatabaseUtility dao = new DatabaseUtility(helper);
    try {
        accessToken = dao.getAccessToken();
    } catch (Exception e1) {
        handler.sendEmptyMessage(1);
        return;
    }

    if(accessToken == null || accessToken.length() == 0){
        handler.sendEmptyMessage(1);
        return;
    }

    Map<String , String> params = new HashMap<String,String>();
    params.put(Constants.ACCESS_TOKEN_PARAM, accessToken);
    params.put(Constants.LISN_ID_PARAM, id);
    params.put(Constants.PROFILE_TYPE_PARAM,shareProfileType2);

    Status status = null;
    try {
        status = Utils.joinLisn(params, this);
    } catch (NullPointerException e) {
        handler.sendEmptyMessage(12);
        return;
    } catch (JSONException e) {
        handler.sendEmptyMessage(11);
        return;
    }

    if(status == null){
        handler.sendEmptyMessage(1);
    } else if(status.getStatus().equalsIgnoreCase(Constants.SUCCESS)){
        try {   
            Intent lisnDetailIntent = new Intent(this, LisnDetailTabView.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            Bundle bundleObj = new Bundle();    
            bundleObj.putString("id", id);
            bundleObj.putString("RSVP","In");
            lisnDetailIntent.putExtras(bundleObj);
            startActivityForResult(lisnDetailIntent,0);
            overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);    
            handler.sendEmptyMessage(8);
        } catch(Exception ex) {}
    } else{
        handler.sendEmptyMessage(2);
        return;
    }
}

2 个答案:

答案 0 :(得分:0)

覆盖onbackpressed以触发保存状态的功能。

    public void onBackPressed() {
        //Do your db saving here
        super.onBackPressed();
    }

答案 1 :(得分:0)

如果您的应用重定向到其他应用,您的应用将被置于后台。利用onSaveInstanceStateonRestoreInstanceState保存并恢复复选框状态。