2016-11-02 2 views
0

에서 현재보기를 파괴 안드로이드 ... 등,내가이 같은 몇 가지 검사를 기반으로 이력서에보기 설정하는 학부모 활동이 부모

public class AppLockActivity extends AppCompatActivity { 

@BindView(R.id.btnSubmit) 
Button submitButton; 

private static final String TAG = "AppLockActivity"; 
private static TimeElapsed timeElapsedInstance; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    timeElapsedInstance = TimeElapsed.getInstance(); 
    timeElapsedInstance.resetTime(); 
    timeElapsedInstance.setStartTime(); 
} 

@Override 
protected void onResume() { 
    super.onResume(); 
    //check if app has passed a time threshold 
    if(timeElapsedInstance.getStartTime() != 0){ 
     timeElapsedInstance.setEndTime(Calendar.getInstance().getTimeInMillis()); 
     long threshold = timeElapsedInstance.getEndTime()-timeElapsedInstance.getStartTime(); 
     Log.d(TAG,"Threshold : "+threshold); 
     //Current timeout threshold set to 30s 
     if(threshold>30000){ 
      setContentView(R.layout.activity_app_lock); 
      ButterKnife.bind(this); 

     }else{ 
     } 
    } 

} 

@OnClick(R.id.btnSubmit) void onSubmit() { 
    //destroy current(Parent) view and show the previous 
} 
} 

이 활동은 MainAcitivty 같은 다른 활동으로 확장을

앱이 백그라운드로 전환되고 다시 시작되면 onResume 함수가 호출되고 새보기가 설정된 R.layout.activity_app_lock에 따라 검사가 수행됩니다. 내가하고 싶은 일은이보기에서 제출 버튼 onClick입니다. 현재보기 (즉, R.layout.activity_app_lock)를 파괴하고 MainActivity (R.layout.activiyt_main)와 같은 하위 활동에 있던 이전보기를 표시하려고합니다. ..

아무도 어떻게 이것을 할 수 있습니까? 감사합니다.

답변

1

다른보기로 실제로 setContentView으로 전화를 걸 수 있습니다. 모든 바인딩을 재설정해야하고 On_____Listeners을 삭제해야합니다. 그렇지 않으면 메모리 누수가 발생합니다. 그것 이외에, 그것은 당신이 갈 준비가되어있을 것입니다.

레이아웃을 변경하는 대신 다른 방법을 제안합니다. 대신, 현재 제출중인 레이아웃을 대체하는 새로운 Activity를 작성하십시오. 그런 다음 누출에 대해 걱정하지 않고 사용자가 제출할 때 잠금 활동에 finish()으로 전화하십시오. 그 효과는 같을 것이고 더 다재다능 할 것입니다 (제 생각에는).

+0

방금 ​​제안한대로 새로운 활동을 시작했습니다. 여기에서 변경 사항을 볼 수 있습니다 : https://github.com/Glucosio/glucosio-android/pull/325/files – vinzzz

관련 문제