android 循环服务,在循环中服务崩溃 - Android Studio

该博客讨论了在Android服务中使用while(true)和sleep方法创建每10秒显示一次吐司消息的问题。作者遇到服务崩溃的情况,并怀疑可能是Toast的上下文传递错误或者是循环实现方式导致的。尽管无法提供堆栈跟踪,作者分享了他们的服务代码,并寻求解决方案。
摘要由CSDN通过智能技术生成

我基本搭售打开一项服务,每10秒钟,将显示吐司说“10秒过去” 这就是我想要做的, 经过许多研究发现,要循环服务我 需要使用while(true) - sleep ... method ... 但服务或我的应用程序崩溃每次我开始服务 在循环中服务崩溃 - Android Studio

什么是我的问题(或每次定时器溢出时间是精确的)?

我的猜测是,也许我传递给敬酒contaxt是错误的? 也许还有另一种方式来显示在循环(在一个serivice中)每10秒钟吐司?

这里是我的服务代码>

package com.greenroad.candidate.mywallpaperchanger;

import android.app.Service;

import android.content.Intent;

import android.os.IBinder;

import android.widget.Toast;

/**

* Created by pitsponet on 31/08/2015.

*/

public class myService extends Service {

@Override

public IBinder onBind(Intent intent) {

return null;

}

@Override

public void onCreate() {

super.onCreate();

Toast.makeText(getApplicationContext(), "service created",

Toast.LENGTH_LONG).show();

}

@Override

public int onStartCommand(Intent intent, int flags, int startId) {

//try to run loop for showing up a toast

new Thread(new Runnable(){

public void run() {

// TODO Auto-generated method stub

while(true)

{

try {

Thread.sleep(10000);

} catch (InterruptedException e) {

e.printStackTrace();

}

//REST OF CODE HERE//

Toast.makeText(getApplicationContext(), "service started",

Toast.LENGTH_LONG).show();

}

}

}).start();

return super.onStartCommand(intent, flags, startId);

}

@Override

public void onDestroy() {

super.onDestroy();

Toast.makeText(getApplicationContext(), "service stoped",

Toast.LENGTH_LONG).show();

}

}

+0

如果它崩溃了,你应该能够得到一个堆栈跟踪。尝试发布,因为它将提供更多的细节,以了解发生了什么。 –

+0

哎阿卡普尔科,unfortuntly我不能堆栈跟踪它becouse我建立这个作为一个APK文件,并将其上传到我的设备,目前的Android Studio不会看到我的设备,而且在它的模拟器不工作,所以我无法以其他方式检查它。 –

+0

我更新了我的答案。我希望你现在很清楚。 –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值