JavascriptProva

mercoledì 5 ottobre 2016

Ripasso di AlarmManager per far ricomparire un'altra o la stessa Activity dopo un intervallo di tempo predefinito.

Riottenere il codice di una funzione a tempo, di cui ero diventato un esperto.
Creo un'activity che si ripropone ciclicamente a intervalli, per il momento, regolari.

Ecco, ho ripassato e riprodotto. Questa è un'activity che si riproduce da sola dopo un determinato intervallo di tempo:
public class MainActivity extends AppCompatActivity {

    private AlarmManager alarmManager;
    private PendingIntent pendingIntent;
    private Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button=(Button) findViewById(R.id.button);
        Intent intent=new Intent(getApplicationContext(),MainActivity.class);
        alarmManager=(AlarmManager)getSystemService(Context.ALARM_SERVICE);
        pendingIntent=PendingIntent.getActivity(getApplicationContext(),0,intent,0);

        button.setOnClickListener(new Button.OnClickListener(){

            @Override
            public void onClick(View view) {



            }
        });
    }

    @Override
    public void onDestroy(){
        super.onDestroy();
        alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime()+5*1000,pendingIntent);

    }

}
Ora devo trovare il modo di far cessare il ciclo.
public class MainActivity extends AppCompatActivity {

    private AlarmManager alarmManager;
    private PendingIntent pendingIntent;
    private Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button=(Button) findViewById(R.id.button);
        Intent intent=new Intent(getApplicationContext(),MainActivity.class);
        alarmManager=(AlarmManager)getSystemService(Context.ALARM_SERVICE);
        pendingIntent=PendingIntent.getActivity(getApplicationContext(),0,intent,0);

        button.setOnClickListener(new Button.OnClickListener(){

            @Override
            public void onClick(View view) {
                alarmManager.cancel(pendingIntent);
                if(pendingIntent!=null) pendingIntent.cancel();


            }
        });
    }

    @Override
    public void onDestroy(){
        super.onDestroy();
        alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime()+5*1000,pendingIntent);

    }

}

Ecco.
Il ripasso l'ho fatto da questo mio stesso post

Nessun commento:

Posta un commento