2015-02-25 2 views
-7

У меня есть деятельность. Я хочу, если пользователь неактивен, через какое-то время (представленное x) это действие будет автоматически завершено. Вся помощь приветствуется.Закрытие активности после x минут неактивного

Мой пример кода:

package com.zilant.testapp; 

import android.support.v7.app.ActionBarActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 


public class HelpActivity extends ActionBarActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_help); 
    } 


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_help, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 
} 
+2

Помогите нам помочь. Ваш вопрос * чрезвычайно * широкий/неопределенный. Мы не знаем, какая помощь вам нужна, потому что вы не сказали нам, в чем проблема. Покажите свой код и укажите, в чем проблема. – tnw

+0

Этот код поставляется с совершенно новым проектом, созданным IDE, включая эти комментарии. –

ответ

1

Вот код активности, который будет автоматически замыкаться через пять секунд.

public class TestActivity extends ActionBarActivity { 


private static final int DELAY = 5000; 

public boolean inactive; 

Handler mHideHandler = new Handler(); 
Runnable mHideRunnable = new Runnable() {   
    @Override 
    public void run() {    
     if(inactive) { 
      finish(); 
     } else { 
      mHideHandler.postDelayed(mHideRunnable, DELAY); 
     } 
    } 
}; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_annotation_test); 
    mHideHandler.postDelayed(mHideRunnable, DELAY); 

} 
} 

Теперь все, что вам нужно сделать, - это изменить неактивную переменную в true после взаимодействия с пользователем. Который отменяет завершение деятельности и запускает новый обратный отсчет.