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: