Java Android:在服务操作中插入处理程序和线程
我的应用程序中有一个在后台运行的服务。现在我想要的是,当我的服务调用时,在执行后台操作时,应该会出现一个进度对话框。我的代码: 我得到以下错误: 06-18 01:12:16.793: 错误/AndroidRuntime737:未捕获 处理程序:由于以下原因而退出主线程 未捕获异常06-18 01:12:16.823: 错误/AndroidRuntime737: java.lang.RuntimeException:无法 创建服务 br.com.ops.service.WarnningService: android.view.WindowManager$BadTokenException: 无法添加窗口-标记为空 不适用于申请06-18 01:12:16.823: 错误/AndroidRuntime737:at android.app.ActivityThread.handleCreateServiceActivityThread.java:2790 06-18 01:12:16.823: 错误/AndroidRuntime737:at android.app.ActivityThread.access$3200ActivityThread.java:119 06-18 01:12:16.823: 错误/AndroidRuntime737:at android.app.ActivityThread$H.handleMessageActivityThread.java:1917 06-18 01:12:16.823: 错误/AndroidRuntime737:at android.os.Handler.dispatchMessageHandler.java:99 06-18 01:12:16.823: 错误/AndroidRuntime737:at android.os.Looper.Looper.java:123 06-18 01:12:16.823: 错误/AndroidRuntime737:at android.app.ActivityThread.mainActivityThread.java:4363 06-18 01:12:16.823: 错误/AndroidRuntime737:at java.lang.reflect.Method.Invokenative 方法06-18 01:12:16.823: 错误/AndroidRuntime737:at java.lang.reflect.Method.invokeMethod.java:521 06-18 01:12:16.823: 错误/AndroidRuntime737:at java:860 06-18 01:12:16.823: 错误/AndroidRuntime737:at java:618 06-18 01:12:16.823: 错误/AndroidRuntime737:at dalvik.system.NativeStart.mainNative 方法06-18 01:12:16.823: 错误/AndroidRuntime737:由以下原因引起: android.view.WindowManager$BadTokenException: 无法添加窗口-标记为空 不适用于申请06-18 01:12:16.823: 错误/AndroidRuntime737:at android.view.ViewRoot.SetViewRoot.java:472 06-18 01:12:16.823: 错误/AndroidRuntime737:at android.view.WindowManagerImpl.addViewWindowManagerImpl.java:177 06-18 01:12:16.823: 错误/AndroidRuntime737:at android.view.WindowManagerImpl.addViewWindowManagerImpl.java:91 06-18 01:12:16.823: 错误/AndroidRuntime737:at android.app.Dialog.showDialog.java:239 06-18 01:12:16.823: 错误/AndroidRuntime737:at android.app.ProgressDialog.showProgressDialog.java:107 06-18 01:12:16.823: 错误/AndroidRuntime737:at android.app.ProgressDialog.showProgressDialog.java:95 06-18 01:12:16.823: 错误/AndroidRuntime737:at br.com.ops.service.WarnningService.onCreateWarningService.java:56 06-18 01:12:16.823: 错误/AndroidRuntime737:at android.app.ActivityThread.handleCreateServiceActivityThread.java:2780 06-18 01:12:16.823: 错误/AndroidRuntime737:。。。10 更多Java Android:在服务操作中插入处理程序和线程,java,android,Java,Android,我的应用程序中有一个在后台运行的服务。现在我想要的是,当我的服务调用时,在执行后台操作时,应该会出现一个进度对话框。我的代码: 我得到以下错误: 06-18 01:12:16.793: 错误/AndroidRuntime737:未捕获 处理程序:由于以下原因而退出主线程 未捕获异常06-18 01:12:16.823: 错误/AndroidRuntime737: java.lang.RuntimeException:无法 创建服务 br.com.ops.service.WarnningServi
请帮帮我。。我不确定处理程序在此操作中的角色。服务无法使用UI。为UI创建活动,或者改为建立通知。要在执行长时间运行的任务时显示进度框,请使用。谷歌对这些都有很好的理解。感谢您的快速评论。您能告诉我如何使用通知吗,因为我无法在活动中执行操作..需要使用服务。。
public class WService extends
Service implements Runnable {
private String TAG_SPV=
"SPV>service>WService"; private
ProgressDialog pd;
NotificationFactory nf; Parse
parse; DAOSymbol dao; WSClient
responseClient; List<Quote> quotes;
Map<String, Symbol> symbols;
private boolean on;
public IBinder onBind(Intent
intent) {
return null; }
@Override public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
Log.i(TAG_SPV,"responseTojsonArray");
parse = new Parse(); dao = new
DAOSymbol(); quotes = new
ArrayList<Quote>(); symbols = new
HashMap<String, Symbol>();
startService(new Intent(this,
br.com.ops.service.NotificationFactory.class));
pd = ProgressDialog.show(this,
"Downloading..", "Please wait",
true,
false);
Thread thread = new Thread(this); thread.start(); }
@Override public void
onStart(Intent intent, int startId)
{ on = true;
super.onStart(intent, startId);
Log.i(TAG_SPV,"onStart"); }
private Handler handler = new
Handler() {
@Override
public void handleMessage(Message msg) {
pd.dismiss();
} };
@SuppressWarnings("unchecked")
public void run() {
Log.i(TAG_SPV,"run"); if (on) {
dao.open(getBaseContext());
//Perform some DB operations as well as hit web service
dao.close();
handler.postDelayed(this, 30000);
} } }