2016-11-02 3 views
0

У меня есть Parent деятельность, которая устанавливает вид на Резюме, основываясь на какой-то проверки, как это:Android Уничтожить текущий вид из родительского

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 и т.д ...

public class MainActivity extends AppLockActivity{ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    setContentView(R.layout.activity_main); 
} 
} 

Когда приложение переходит в фоновом режиме и возобновляется функция onResume, и на основе проверки установлен новый параметр - R.layout.activity_app_lock. То, что я хочу сделать, это onClick кнопки submit в этом представлении. Я хочу уничтожить текущее представление ie (R.layout.activity_app_lock) и показать предыдущее представление, которое было в дочерней активности, например MainActivity (R.layout.activiyt_main). ..

У кого-нибудь есть идеи, как я могу это сделать? Спасибо

ответ

1

Вы действительно можете позвонить по телефону setContentView с другой точки зрения. Все ваши привязки должны быть сброшены, и ваш On_____Listeners должен быть очищен, иначе вы получите утечку памяти. Кроме этого, все будет готово для вас.

Хотя я предлагаю альтернативный подход к изменению макета. Вместо этого создайте новое действие, которое вы начинаете с замены макета, который вы отправляете в настоящее время. Затем, вместо того, чтобы беспокоиться об утечках, вы просто вызываете finish() на блокировку. Активность, когда пользователь отправляет. Эффект будет таким же, и он будет более универсальным (на мой взгляд).

+0

Я только что начал новую деятельность, как и предложил. Вы можете увидеть изменения здесь: https://github.com/Glucosio/glucosio-android/pull/325/files – vinzzz

 Смежные вопросы

  • Нет связанных вопросов^_^