Так что по сути я делаю приложение, которое будет работать в фоновом режиме.Теперь у моего приложения есть возможность запускать и останавливать службу, но по умолчанию она будет запускаться при загрузке.
Есть ли способ сделать тумблер, похожий на «Запуск при запуске Windows», который позволяетпользователю разрешить или запретить запуск службы при загрузке телефона?
Если это был мой код .. который запускает службу BG, которая выполняет действие:
public class startOnBoot extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent arg1)
{
Intent intent = new Intent(context,backgroundService.class);
context.startService(intent);
Log.i("Autostart", "Service Started");
}
}
И у меня есть моя кнопка переключения:
final ToggleButton toggle = (ToggleButton) findViewById(R.id.togglebutton);
toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
Toast.makeText(getBaseContext(), "On", Toast.LENGTH_LONG).show();
enableReceiver(Home.this);
} else {
Toast.makeText(getBaseContext(), "Off", Toast.LENGTH_LONG).show();
disableReciever(Home.this);
}
}
});
И две функции:
public void enableReceiver(Context context) {
ComponentName component = new ComponentName(context, startOnBoot.class);
PackageManager pm = context.getPackageManager();
pm.setComponentEnabledSetting(
component,
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
}
public void disableReciever(Context context) {
ComponentName component = new ComponentName(context, startOnBoot.class);
PackageManager pm = context.getPackageManager();
pm.setComponentEnabledSetting(
component,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
}
Проблема в том, что это может включать и отключать функцию;если я перезагружаю телефон, он по умолчанию переходит на то, что читает мой AndroidManifest, который по умолчанию отключен.Таким образом, решение не является постоянным, оно сбрасывается.Я не знаю, является ли это правильным подходом, но что мне нужно сделать, чтобы позволить пользователям выбирать, хотят ли они функцию автоматической загрузки.