- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我也杀死应用程序实例,我想在后台运行我的应用程序。但在我杀死我的应用程序后,该服务也停止工作。这是我的代码,请任何人帮助我解决我的问题。
我按照此链接在后台运行,但如果删除实例,它就不起作用。如果实例也被删除,谁能告诉我如何运行后台服务?
这是我的主要 Activity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ctx = this;
setContentView(R.layout.activity_main);
Intent alarmIntent = new Intent(MainActivity.this, AlarmReceiver.class);
pendingIntent = PendingIntent.getBroadcast(MainActivity.this, ALARM_REQUEST_CODE, alarmIntent, 0);
mSensorService = new SensorService(getCtx());
mServiceIntent = new Intent(getCtx(), mSensorService.getClass());
if (!isMyServiceRunning(mSensorService.getClass())) {
startService(mServiceIntent);
}
}
这是我的服务级别
public class SensorService extends Service{
public int counter=0;
public SensorService(Context applicationContext) {
super();
Log.i("HERE", "here I am!");
}
public SensorService() {
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
startTimer();
return START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
Log.i("EXIT", "ondestroy!");
Intent broadcastIntent = new Intent("uk.ac.shef.oak.ActivityRecognition.RestartSensor");
sendBroadcast(broadcastIntent);
}
private Timer timer;
private TimerTask timerTask;
long oldTime=0;
public void startTimer() {
//set a new Timer
timer = new Timer();
//initialize the TimerTask's job
initializeTimerTask();
//schedule the timer, to wake up every 1 second
timer.schedule(timerTask, 1000, 1000); //
}
/**
* it sets the timer to print the counter every x seconds
*/
public void initializeTimerTask() {
timerTask = new TimerTask() {
public void run() {
Log.i("in timer", "in timer ++++ "+ (counter++));
}
};
}
/**
* not needed
*/
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
最佳答案
Its a long story. I have gone through it. Still implemented it. Now my service runs on every boot_complete event and keeps running all the time ( with a notification ).
大号。 Google Android 开发人员文档很差,也没有适当的示例示例。这是理论上的,而且只是理论上的。如果有兴趣请继续阅读
https://developer.android.com/about/versions/oreo/background
概要1:在传统接收器中您只能接收 BOOT_COMPLETE
且只能接收少量广播。通过通过始终运行的服务中的代码注册它们,休息在服务中实现运行时所需的所有广播接收器。
概要2:再说一次,你不能总是在 8.0 (Oreo) 或更高版本中运行进程...要实现始终运行的进程...创建一个带有ongoing
类型的正确通知的Intentservice
,并创建OnStartCommand
START_STICKY
和使用 OnCreate
如何实现:我已经实现了它,引用这里: Oreo: Broadcast receiver Not working
Now Your Question : I want to run my app in background if it kills the app instance also.
借助我自己的上述实现链接,您可以实现它
*Terms and conditions
您的设备必须已发布并按原样烧录正确的 Android 操作系统。
Yes, I am using android :
No... You are Using Funtouch OS : VIVO ( By modifying Android)
市场上有很多设备COLOR OS:OPPO(通过修改Android) .... ....
以仅允许选择性应用程序在后台运行
例如 WhatsApp
、Facebook
、Google
Twitter
Instagram
现在您将询问开发人员问题如果这些应用程序在后台运行,那么我也可以让我的应用程序在后台运行......
不...它们是基于操作系统的修改,用于检查服务是否来自允许的供应商,然后只有它可以在后台存活。如果他们不允许这些供应商,那么就没有人会购买不运行这些著名社交应用程序的手机。
嘘嘘嘘……
关于android - 后台服务在奥利奥中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51241184/
我是一名优秀的程序员,十分优秀!