Skip to content

Instantly share code, notes, and snippets.

@bymaximus
Forked from sunmeat/different files
Created April 24, 2025 05:51
Show Gist options
  • Save bymaximus/99b26a98242238ea499365dd89ff3fde to your computer and use it in GitHub Desktop.
Save bymaximus/99b26a98242238ea499365dd89ff3fde to your computer and use it in GitHub Desktop.
receive boot completed listener - android receiver example (mobile phone reload event handler)
MainActivity.java:
package com.alex.receivers;
import android.Manifest;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
public class MainActivity extends AppCompatActivity {
private static final int PERMISSION_REQUEST_CODE = 100;
MyReceiver r = new MyReceiver();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (checkPermission()) {
onPermissionGranted();
} else {
requestPermission();
}
}
private boolean checkPermission() {
return ContextCompat.checkSelfPermission(this, Manifest.permission.RECEIVE_BOOT_COMPLETED)
== PackageManager.PERMISSION_GRANTED;
}
private void requestPermission() {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.RECEIVE_BOOT_COMPLETED},
PERMISSION_REQUEST_CODE);
}
private void onPermissionGranted() {
Toast.makeText(this, "Permissions Granted!", Toast.LENGTH_SHORT).show();
var i = new IntentFilter("android.intent.action.BOOT_COMPLETED");
registerReceiver(r, i);
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == PERMISSION_REQUEST_CODE) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
onPermissionGranted();
} else {
Toast.makeText(this, "Permission Denied", Toast.LENGTH_SHORT).show();
}
}
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(r);
}
}
====================================================================================================================================
MyReceiver.java:
package com.alex.receivers;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class MyReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
if (intent != null && "android.permission.RECEIVE_BOOT_COMPLETED".equals(intent.getAction())) {
var i = new Intent(context, MainActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
}
====================================================================================================================================
AndroidManifest.xml:
...
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
...
<receiver
android:name=".MyReceiver"
android:enabled="true"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
</application>
</manifest>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment