Diferentes formas de reiniciar mediante programación una aplicación de Android al hacer clic en un botón

A veces queremos refrescar una Actividad, pero ahí no es posible refrescar. En ese lugar, si reiniciamos nuestra aplicación, se actualiza automáticamente. Además, podemos usar esto para reiniciar nuestra aplicación cada vez que falla. La mayoría de las veces, cuando abrimos cualquier aplicación, obtiene todos los datos disponibles actualmente. Pero si, mientras tanto, se actualizan más datos en la base de datos, entonces podemos usar esta función para reiniciar y recuperar todos los datos cada vez que obtenga nuevos datos. 

Reiniciar programáticamente una aplicación de Android al hacer clic en el botón tres Reiniciar programáticamente una aplicación de Android al hacer clic en el botón.

Implementación paso a paso

Paso 1: crear un nuevo proyecto

Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Java como lenguaje de programación.

Paso 2: trabajar con el archivo activity_main.xml

Vaya a la aplicación > res > diseño > actividad_principal.xml y agregue el siguiente código a ese archivo. A continuación se muestra el código para el archivo  activity_main.xml .

XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    tools:context=".MainActivity">
  
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Click on Button to restart the app"
        android:textStyle="bold" />
  
    <Button
        android:id="@+id/click"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:background="@color/black"
        android:padding="10dp"
        android:text="Click to Restart" />
  
</LinearLayout>

Método 1

Vaya al archivo MainActivity.java y consulte el siguiente código. A continuación se muestra el código del archivo MainActivity.java . Se agregan comentarios dentro del código para comprender el código con más detalle.

Java

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
  
import androidx.appcompat.app.AppCompatActivity;
  
public class MainActivity extends AppCompatActivity {
  
    Button click;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        click = findViewById(R.id.click);
        click.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                  
                // after on CLick we are using finish to close and then just after that
                // we are calling startactivity(getIntent()) to open our application
                finish();
                startActivity(getIntent());
                  
                // this basically provides animation
                overridePendingTransition(0, 0);
                String time = System.currentTimeMillis() + "";
                  
                // Showing a toast message at the time when we are capturing screenshot
                Toast.makeText(MainActivity.this, "Current time in millisecond after app restart" + time, Toast.LENGTH_SHORT).show();
            }
        });
    }
}

Producción:

Método 2

Agregue esta implementación a su compilación. archivo gradle

implementación ‘com.jakewharton:process-phoenix:2.0.0’

Agregue este valor predeterminado en el archivo Androidmanifest.xml

<activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
</activity>

Agregue el siguiente código al archivo MainActivity.java

Java

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
  
import androidx.appcompat.app.AppCompatActivity;
  
import com.jakewharton.processphoenix.ProcessPhoenix;
  
public class MainActivity extends AppCompatActivity {
  
    Button click;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
  
        setContentView(R.layout.activity_main);
        click = findViewById(R.id.click);
  
        click.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // this process phoenix library is used 
                // in case to restart our application
                ProcessPhoenix.triggerRebirth(getApplicationContext());
            }
        });
    }
}

Producción:

Método 3

Agregue el siguiente código al archivo MainActivity.java

Java

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
  
import androidx.appcompat.app.AppCompatActivity;
  
public class MainActivity extends AppCompatActivity {
  
    Button click;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        click = findViewById(R.id.click);
        click.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // Navigating From MainActivity to MainActivity.
                // Navigate from this activity to the activity 
                // specified by upIntent,
                // basically finishing this activity in the process.
                navigateUpTo(new Intent(MainActivity.this, MainActivity.class));
                startActivity(getIntent());
            }
        });
    }
}

Producción:

Publicación traducida automáticamente

Artículo escrito por annianni y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *