我正在处理IntentService
,我在循环中生成值。在覆盖方法onStartCommand()
和onDestroy()
中,可以使用Toast
显示消息。我也想在Toast
中使用onHandleIntent()
,但它不起作用。我知道有更好的方法(文件,属性等)来显示值,但是在创建它们时我会立即需要这些值。最后(仅限控制,如果它正常工作)。拜托,你能帮我辨认一下这个问题吗?提前致谢。
public class HelloIntentService extends IntentService {
public HelloIntentService() {
super("HelloIntentService");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Toast.makeText(this, "service starting", Toast.LENGTH_SHORT).show();
return super.onStartCommand(intent,flags,startId);
}
@Override
protected void onHandleIntent(Intent intent) {
long endTime = System.currentTimeMillis() + 5*1000;
while (System.currentTimeMillis() < endTime) {
synchronized (this) {
try {
wait(endTime - System.currentTimeMillis());
} catch (Exception e) {
}
}
}}
@Override
public void onDestroy()
{
Toast.makeText(this, "Service is being destroyed now.", Toast.LENGTH_SHORT).show();
}
}
答案 0 :(得分:0)
onHandleIntent在每个the source code的后台运行在一个单独的线程上,因此没有任何更新UI的能力。我建议使用日志语句而不是Toasts来显示您的信息:
Log.d("HelloIntentService","service starting");