2016-10-03 17 views
-1

可能性の高いアプリケーションを作成しています。 私は単に、画面の時間が経過するとすぐに、またはユーザーがアクセスを停止した1分後に、アプリケーションをホーム画面にリダイレクトする必要があります。 おかげ画面のタイムアウト後にアプリケーションをホーム画面にリダイレクト

+0

新しいHandler()を使用するpostDelay(新しいRunnable()、delaytime) –

+0

返信ありがとうございます。しかし..正確な1分後にアプリケーションをリダイレクトしたくありません。ユーザーが停止してからしばらくしてからアプリケーションをリダイレクトしたいそれにアクセスしてください。アンドロイドのスクリーンタイムアウトのように –

+0

を使用してください。 –

答えて

1
int counter=0; 

boolean isStart=true; 

private void start(){ 

Thread t=new Thread(new Runnable() { 

@Override 
public void run() { 

    while (isStart){ 

     try { 

      Thread.sleep(100); 

      counter++; 

      if(counter>=10){//for one minute 

       //your code 

       isStart=false; 

      } 

     } catch (InterruptedException e) { 

      e.printStackTrace(); 

     } 

    } 

} 

}); 

t.start(); 

} 

ユーザアクセス時にカウンタをゼロに設定します。

+0

問題はカウンタを0にリセットする方法です –

+0

ユーザーが1分以内にタッチまたはクリックすると0に設定されます。 –

+0

ありがとうございました。 –

0

あなたは時間をカウントするためHandlerまたはCountDownTimerを使用するか、次のタスクをスケジュールすることができます。時間が終わったら、ホーム画面にリダイレクトする必要があります。

  • ホーム画面が現在の画面の直前の場合は、ホーム画面を移動するためにfinish()またはcontext.finish()を呼び出します。
  • ホーム画面が現在の画面の直前ではない場合は、ホーム画面に移動する意図を使用します。

希望します。

0
rel= (RelativeLayout) findViewById(R.id.relative); 
     rel.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       new Handler(Looper.getMainLooper()).postDelayed(new Runnable() { 
        @Override 
        public void run() { 
         finish(); 
        } 
       }, 10000); 
       return false; 
      } 
     }); 

私はリダイレクトするため、このコードを使用しています..しかし、私は10000ミリ秒にハンドラ時間をリセットする方法を知っているdon't ..私はタッチでresetingためtouchlistenerを取っています..しかし、私のために動作しません

関連する問題