在刷掉应用程序时,Android服务会被杀死
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在刷掉应用程序时,Android服务会被杀死,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2381字,纯文字阅读大概需要4分钟。
内容图文
我有一个Android Service类,其代码如下:
public class LoginService extends Service {
BroadcastReceiver wifiStateChangeReciever;
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i("AndroidLearning", "Service onStartCommand Started.");
return Service.START_STICKY;
}
@Override
public void onCreate() {
super.onCreate();
Log.i("AndroidLearning", "Service Started.");
final IntentFilter intentFilter = new IntentFilter();
// intentFilter.addAction("android.net.wifi.WIFI_STATE_CHANGED");
intentFilter.addAction("android.net.wifi.STATE_CHANGE");
wifiStateChangeReciever = new WifiStateChangeReciever();
this.registerReceiver(wifiStateChangeReciever, intentFilter, null, null);
Log.i("AndroidLearning", "Reciever Registered.");
}
@Override
public void onDestroy() {
Log.i("AndroidLearning", "Service Destroyed.");
this.unregisterReceiver(wifiStateChangeReciever);
}
@Override
public void onTaskRemoved(Intent rootIntent) {
Log.w("AndroidLearning", "On Task Remove: FLAG_STOP_WITH_TASK - "
+ ServiceInfo.FLAG_STOP_WITH_TASK);
this.unregisterReceiver(wifiStateChangeReciever);
Intent restartServiceIntent = new Intent(getApplicationContext(),
this.getClass()); restartServiceIntent.setPackage(getPackageName());
PendingIntent restartServicePendingIntent = PendingIntent.getService(
getApplicationContext(), 1, restartServiceIntent, PendingIntent.FLAG_ONE_SHOT);
AlarmManager alarmService = (AlarmManager)this.getSystemService(Context.ALARM_SERVICE);
alarmService.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() + 1000, restartServicePendingIntent);
Log.w("AndroidLearning", "End on task removed");
super.onTaskRemoved(rootIntent);
}
}
它注册了BroadcastReciever.启动此服务的Activity具有以下代码:
Intent intent = new Intent(this, LoginService.class);
startService(intent);
但是,每当从任务列表(最近)中删除活动时,服务也会停止.我过度使用onTaskRemoved来修复它,但它似乎仍然没有工作,并且AlarmManager永远不会启动pendingIntent.我尝试使用两种方法:set和setExact用于AlarmManager.
我还尝试将以下选项添加到< service>标签
android:stopWithTask="false"
android:process=":remote"
但无济于事.
我在这做错了什么?谢谢您的帮助.
解决方法:
我终于找到了自己问题的答案.这似乎是我在手机(Mi UI)上运行的特定Android风格的问题.每个应用程序都有一个单独的设置,是否需要重新启动.
除非配置了此设置,否则任何更改权限和设置警报的数量都无济于事.
内容总结
以上是互联网集市为您收集整理的在刷掉应用程序时,Android服务会被杀死全部内容,希望文章能够帮你解决在刷掉应用程序时,Android服务会被杀死所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。