1

私はAndroidが初めてです。Android - 一定時間を過ぎてもアクティビティが自動的に開始されない

私は1つのアクティビティで加速度センサーデータを取得しています。シェイクが検出された後、SensorManagerを停止しました。 5秒後に自動的に活動を再開する必要があり、SensorManagerは停止しました。出来ますか?

同じアクティビティから現在のアクティビティを開始することはできますか?

誰か助けてくれますか?事前に

感謝:)

答えて

2

SensorManagerが停止しているときにこのコードを使用してください。 SensorManagerが停止してから5秒後にアクティビティが再開されます。

new Handler().postDelayed(new Runnable() { 

       @Override 
       public void run() { 

        Intent intent = getIntent(); 
        finish(); 
        startActivity(intent); 
       } 
      }, 5000); 
+0

ありがとう!私はあなたにこれを試してみましょう。 – Arun

3

私は5秒後に自動的に活動を再開する必要があるが、 sensorManagerが停止しました。出来ますか?

SensorManagerを停止すると、活動を開始するために必要な遅延でAlarmManagerActivityPendingIntentを提供するとはい、それはAlarmManager

を使用可能です:あなたはSensorを停止すると

Intent intent = new Intent(context,MainActivity.class); 
PendingIntent pendingIntent = PendingIntent.getActivity(context,0, intent, 
           Intent.FLAG_ACTIVITY_NEW_TASK); 
AlarmManager manager =(AlarmManager) getSystemService(Context.ALARM_SERVICE); 
manager.set(AlarmManager.RTC,System.currentTimeMillis() + 6000, pendingIntent); 
+0

ありがとうございました。私はこれを試した後にお知らせします。 – Arun

2

、あなたは5秒後にActivityを開始することができます用途によってはHandlerのように

final Handler handler = new Handler(); 
handler.postDelayed(new Runnable() { 
    @Override 
    public void run() { 
     startActivity(...); 
    } 
}, 5000); 
+0

ありがとう!それが動作した後、私はあなたにお知らせします – Arun

2

スレッドは、遅延を提供するために使用されます。 センサーが停止したときに以下のコードを追加してください。

new Handler().postDelayed(new Runnable() { 
      @Override 
      public void run() { 

       //Start Activity here 
      } 
     },5000); 
関連する問題