Java Android:我是否应该避免在Commonware';WakefulIntentservice是什么?
在我的应用程序中,我得到了CommosWare的Java Android:我是否应该避免在Commonware';WakefulIntentservice是什么?,java,android,wakelock,commonsware-cwac,Java,Android,Wakelock,Commonsware Cwac,在我的应用程序中,我得到了CommosWare的WakefulIntentservice。通过doWakefulWork方法,我调用了两个自写方法。例如: @Override protected void doWakefulWork(Intent arg0) { exampleMethod(); } private void exampleMethod() { //Stuff } 它使我的代码保持清晰,但是当我调用自写方法时,是否有可能丢失WakeLock 提前谢谢 只要“自
WakefulIntentservice
。通过doWakefulWork
方法,我调用了两个自写方法。例如:
@Override
protected void doWakefulWork(Intent arg0) {
exampleMethod();
}
private void exampleMethod() {
//Stuff
}
它使我的代码保持清晰,但是当我调用自写方法时,是否有可能丢失WakeLock
提前谢谢 只要“自写方法”不分叉线程或以其他方式异步执行某些操作,您就安全了。只要“自写方法”不分叉线程或以其他方式异步执行某些操作,您就安全了。调用方法并不意味着您离开了
doWakefulWork
。这更像是将方法的代码行复制到调用方法
这就是这里
protected void doWakefulWork(Intent arg0) {
exampleMethod();
exampleMethod2();
}
private void exampleMethod() {
exampleMethod2();
exampleMethod2();
}
private void exampleMethod2() {
print("Hello");
}
和这里做的完全一样
protected void doWakefulWork(Intent arg0) {
{ // exampleMethod()
{ // exampleMethod2()
print("Hello");
}
{ // exampleMethod2()
print("Hello");
}
}
{ // exampleMethod2()
print("Hello");
}
}
或者没有所有的支架
protected void doWakefulWork(Intent arg0) {
print("Hello");
print("Hello");
print("Hello");
}
因此,在调用方法时,您永远不会离开
doWakefulWork
,因此,WakeLock
不会消失。调用方法并不意味着您离开了doWakefulWork
,它也会结束。这更像是将方法的代码行复制到调用方法
这就是这里
protected void doWakefulWork(Intent arg0) {
exampleMethod();
exampleMethod2();
}
private void exampleMethod() {
exampleMethod2();
exampleMethod2();
}
private void exampleMethod2() {
print("Hello");
}
和这里做的完全一样
protected void doWakefulWork(Intent arg0) {
{ // exampleMethod()
{ // exampleMethod2()
print("Hello");
}
{ // exampleMethod2()
print("Hello");
}
}
{ // exampleMethod2()
print("Hello");
}
}
或者没有所有的支架
protected void doWakefulWork(Intent arg0) {
print("Hello");
print("Hello");
print("Hello");
}
因此,在调用一个方法时,你永远不会离开WakefulWork,因此WakeLock不能消失。还有一个问题:一个方法执行的最长时间是多少?@Merlin:好吧,最终太阳会熄灭或者变成新星或者其他什么。我会试着在那之前结束。:-)还有一个问题:有没有一个方法执行的最长时间?@Merlin:好吧,最终太阳会烧掉或者变成新星之类的。我会试着在那之前结束。:-)@AkhilJain我想我想说的是,直接方法调用不能是异步的,也可以内联写入调用方法。而且你不需要“自写方法”来启动超过wakelock的异步操作。@AkhilJain我想我想说的是,直接方法调用不能是异步的,也可以内联写入调用方法。您不需要“自写方法”来启动超过wakelock的异步操作。