我最近自己开始尝试Android
开发,但发现自己没有人问过我今天来找你这样的事情。
请参阅,我已经负责制作一个小型应用程序,用于计算您在x
小时内接听电话的次数。
经过一段谷歌搜索后,我发现IntentService
应该用于这样的事情(如果这是不正确的,我应该使用Service
代替,给我一个眨眼)。
我已经实施了n IntentService
,并让它运行以下代码:
@Override
protected void onStart() {
Log.i(info, "The app started!");
Intent i = new Intent(this, IntentServiceTest.class);
i.putExtra("KEY1", "information!");
this.startService(i);
super.onStart();
}
哪,如果你没猜到;当我的应用程序首次启动它Activity
时(如果需要,我可以发布整个Activity
)。
我的IntentService
看起来像这样:
public class IntentServiceTest extends IntentService {
public IntentServiceTest() {
super("IntentServiceTest");
}
@Override
public void onCreate() {
super.onCreate();
Log.i(FirstActivity.info, "The IntetService started!");
}
@Override
protected void onHandleIntent(Intent workIntent) {
Log.i(FirstActivity.info, "Here is some " + workIntent.getExtras().get("KEY1").toString());
}
@Override
public void onDestroy() {
super.onDestroy();
Log.i(FirstActivity.info, "The IntetService ended!");
}
}
到目前为止,我认为我在绿色。但是,正如你们中的一些人可能已经猜到的那样敏锐,我的IntentService
确实会结束。正如我的Logcat透露时向我透露的那样:
I/[INFORMATION]: The IntetService ended!
它还没有持续x
小时,而且它肯定没有计入任何入站电话(虽然后者是另一天的问题)。
在收听来电时如何让IntentService
在后台休眠?
每次点击" Home"我的模拟器中的按钮,我的控制台告诉我:
E/Surface: getSlotFromBufferLocked: unknown buffer: 0xab7d30a0
(我猜是因为IntentService
已经死了?)
任何人都可以快速解释一下如何让IntentService
随着时间的推移而活着吗?即使在用户点击" Home"按钮,从而离开应用程序?