Android x 시간 또는 분마다 메서드를 실행하는 방법

user36606

Updater()나는 알람 서비스로 호출되는 메소드를 실행하려고 시도하고 테스트를 위해 1 분마다 그리고 결국 2 시간마다 업데이트하기를 원합니다. Sceduled 작업은 토글 버튼이 켜져 있으면 타이머에서 실행되고 토글 버튼이 꺼져 있으면 타이머를 중지합니다. 이것이 지금까지 내 코드입니다. 누군가 내가 뭘 잘못하고 있는지 보여줄 수 있습니까?

 public class AlarmReceiver extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent) {
        Updater();
    }
}
public void autoUpdateClick(View view)
{
    AlarmManager alarmManager=(AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
    Intent intent = new Intent(this,AlarmReceiver.class);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
    boolean on = ((ToggleButton) view).isChecked();
    if (on)
    {
      alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),30000,pendingIntent);
        Toast.makeText(getBaseContext(),"Check-In will be done every 2 hours",Toast.LENGTH_SHORT).show();
    }
    else
    {
     alarmManager.cancel(pendingIntent);
        Toast.makeText(getBaseContext(),"Manual Check-In enabled",Toast.LENGTH_SHORT).show();
    }

}
Shravan

앞서 언급했듯이 향후 특정 시간에 메서드를 실행하도록 알람을 예약 할 것입니다.

우리는 두 가지 수업을

  1. MainAcitvity :이 수업에서는 특정 시간에 알람이 트리거되도록 예약합니다.
  2. AlarmReciever : 예약 된 시간에 알람이 트리거되면이 클래스는 알람을 수신하고 메서드를 실행합니다.

AlarmReciever 클래스는 BroadcastReceiver를 확장하고 onRecieve () 메서드를 재정의합니다. onReceive () 내에서 전화를 진동하거나 전화를 울리는 활동을 시작할 수있는 것처럼 필요에 따라 활동 또는 서비스를 시작할 수 있습니다.

권한 필요 애플리케이션에서 AlarmManger를 사용하려면 권한이 필요하므로 매니페스트 파일에서 권한을 선언하는 것을 잊지 마십시오.

AndroidManifest 파일

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.test.src"
    android:versionCode="1"
    android:versionName="1.0" >

        <uses-sdk android:minSdkVersion="8"
                         android:targetSdkVersion="17" />
         <!-- permission required to use Alarm Manager -->
        <uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>


        <application
                 android:icon="@drawable/ic_launcher"
                 android:label="Demo App" >
                <activity
                           android:name=".MainActivity"
                           android:label="Demo App" >
                          <intent-filter>
                                       <action android:name="android.intent.action.MAIN" />
                                       <category android:name="android.intent.category.LAUNCHER" />
                          </intent-filter>
               </activity>


            <!-- Register the Alarm Receiver -->
                   <receiver android:name=".AlarmReciever"/> 
            
         </application>
</manifest>

main.xml

<LinearLayout
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical"
    android:gravity="center_vertical"
    xmlns:android="http://schemas.android.com/apk/res/android">


<TextView
    android:id="@+id/textView1"
    android:gravity="center_horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Alarm Manager Example"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<Button
    android:id="@+id/button1"
    android:layout_marginTop="25dp"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Schedule The Alarm" 
    android:onClick="scheduleAlarm"/>

</LinearLayout>

MainActivity.java

public class MainActivity extends Activity
{
       @Override
       public void onCreate(Bundle savedInstanceState) 
      {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
      }

    public void scheduleAlarm(View V)
    {
            // time at which alarm will be scheduled here alarm is scheduled at 1 day from current time, 
            // we fetch  the current time in milliseconds and added 1 day time
            // i.e. 24*60*60*1000= 86,400,000   milliseconds in a day        
            Long time = new GregorianCalendar().getTimeInMillis()+24*60*60*1000;

            // create an Intent and set the class which will execute when Alarm triggers, here we have
            // given AlarmReciever in the Intent, the onRecieve() method of this class will execute when
            // alarm triggers and 
            //we call the method inside onRecieve() method of Alarmreciever class
            Intent intentAlarm = new Intent(this, AlarmReciever.class);
       
            // create the object
            AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);

            //set the alarm for particular time
            alarmManager.set(AlarmManager.RTC_WAKEUP,time, PendingIntent.getBroadcast(this,1,  intentAlarm, PendingIntent.FLAG_UPDATE_CURRENT));
            Toast.makeText(this, "Alarm Scheduled for Tommrrow", Toast.LENGTH_LONG).show();
         
    }
}

AlarmReciever.java

public class AlarmReciever extends BroadcastReceiver

{
         @Override
            public void onReceive(Context context, Intent intent)
            {
               //call the method here
                         
             }
      
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

8 시간 1 분마다 CRON을 실행하는 방법

분류에서Dev

실행 시간이 X보다 큰 줄을 grep하는 방법

분류에서Dev

안드로이드에서 x 분마다 IntentService를 실행하는 적절한 방법, 잠자기 포함

분류에서Dev

x- 시간 (분 및 시간)으로 작업을 실행하는 방법

분류에서Dev

android studio에서 특정 시간 동안 스레드를 실행하는 방법

분류에서Dev

다른 시간에 $ http 코드 실행, 순서대로 실행하는 방법

분류에서Dev

Android에서 15 분마다 반복 알람 시간을 설정하는 방법은 무엇입니까?

분류에서Dev

서버에서 x 분마다 알고리즘을 실행하는 방법은 무엇입니까?

분류에서Dev

Android Studio에서 테스트 메서드 또는 클래스를 Android 테스트로 실행하는 방법

분류에서Dev

10 분마다 스크립트를 실행하는 방법

분류에서Dev

무인 업그레이드를 매일이 아니라 몇 시간마다 실행하는 방법

분류에서Dev

'x'분마다 jquery 스크립트를 실행하는 PHP

분류에서Dev

다른 메서드를 병렬로 실행하는 방법

분류에서Dev

AS3-1 밀리 초 또는 5 밀리 초마다 정확한 시간 (프레임 속도 독립적)으로 이벤트를 실행하는 방법

분류에서Dev

View의 특정 부분에서 실행 시간을 측정하는 방법

분류에서Dev

Python에서 X 분마다 백그라운드 스레드에서 특정 메서드를 호출하는 방법은 무엇입니까?

분류에서Dev

Ubuntu 14.x 버전에서 실행되는 프로세스를 다시 시작하는 방법

분류에서Dev

충돌 후 X11을 다시 실행하는 방법

분류에서Dev

15 분마다, 특히 매일 15 분마다 Android 기능을 실행하는 방법은 무엇입니까?

분류에서Dev

Android에서 2 개의 스레드를 동시에 실행하는 방법

분류에서Dev

Android 조각에서 버튼 클릭시 코드를 실행하는 방법

분류에서Dev

Matplotlib에서 매우 큰 데이터 세트 (날짜, 시간 (x 축) 대 1 년 동안 매일 15 분마다 기록 된 값 (y 축))를 그리는 방법

분류에서Dev

약속 : 비동기 메서드를 병렬로 실행 한 다음 메서드를 실행하는 방법

분류에서Dev

특정 시간에 함수를 실행하는 방법을 모릅니다

분류에서Dev

다른 시간대에 대해 Oracle 쿼리를 실행하는 방법

분류에서Dev

Flutter에서 특정 시간에 메서드를 실행하는 방법은 무엇입니까?

분류에서Dev

Azure에서 1 시간마다 실행되도록 웹 작업을 설정하는 방법

분류에서Dev

Android에서 다른 시간대와 관련하여 시간을 얻는 방법

분류에서Dev

ELK에서 실시간 경고를 수행하는 방법

Related 관련 기사

  1. 1

    8 시간 1 분마다 CRON을 실행하는 방법

  2. 2

    실행 시간이 X보다 큰 줄을 grep하는 방법

  3. 3

    안드로이드에서 x 분마다 IntentService를 실행하는 적절한 방법, 잠자기 포함

  4. 4

    x- 시간 (분 및 시간)으로 작업을 실행하는 방법

  5. 5

    android studio에서 특정 시간 동안 스레드를 실행하는 방법

  6. 6

    다른 시간에 $ http 코드 실행, 순서대로 실행하는 방법

  7. 7

    Android에서 15 분마다 반복 알람 시간을 설정하는 방법은 무엇입니까?

  8. 8

    서버에서 x 분마다 알고리즘을 실행하는 방법은 무엇입니까?

  9. 9

    Android Studio에서 테스트 메서드 또는 클래스를 Android 테스트로 실행하는 방법

  10. 10

    10 분마다 스크립트를 실행하는 방법

  11. 11

    무인 업그레이드를 매일이 아니라 몇 시간마다 실행하는 방법

  12. 12

    'x'분마다 jquery 스크립트를 실행하는 PHP

  13. 13

    다른 메서드를 병렬로 실행하는 방법

  14. 14

    AS3-1 밀리 초 또는 5 밀리 초마다 정확한 시간 (프레임 속도 독립적)으로 이벤트를 실행하는 방법

  15. 15

    View의 특정 부분에서 실행 시간을 측정하는 방법

  16. 16

    Python에서 X 분마다 백그라운드 스레드에서 특정 메서드를 호출하는 방법은 무엇입니까?

  17. 17

    Ubuntu 14.x 버전에서 실행되는 프로세스를 다시 시작하는 방법

  18. 18

    충돌 후 X11을 다시 실행하는 방법

  19. 19

    15 분마다, 특히 매일 15 분마다 Android 기능을 실행하는 방법은 무엇입니까?

  20. 20

    Android에서 2 개의 스레드를 동시에 실행하는 방법

  21. 21

    Android 조각에서 버튼 클릭시 코드를 실행하는 방법

  22. 22

    Matplotlib에서 매우 큰 데이터 세트 (날짜, 시간 (x 축) 대 1 년 동안 매일 15 분마다 기록 된 값 (y 축))를 그리는 방법

  23. 23

    약속 : 비동기 메서드를 병렬로 실행 한 다음 메서드를 실행하는 방법

  24. 24

    특정 시간에 함수를 실행하는 방법을 모릅니다

  25. 25

    다른 시간대에 대해 Oracle 쿼리를 실행하는 방법

  26. 26

    Flutter에서 특정 시간에 메서드를 실행하는 방법은 무엇입니까?

  27. 27

    Azure에서 1 시간마다 실행되도록 웹 작업을 설정하는 방법

  28. 28

    Android에서 다른 시간대와 관련하여 시간을 얻는 방법

  29. 29

    ELK에서 실시간 경고를 수행하는 방법

뜨겁다태그

보관