从android中的对话框启动服务

时间:2013-03-20 19:43:17

标签: android android-service android-dialog

我正在尝试从弹出式对话框启动后台服务,但这对我不起作用

这是打开对话框的代码:

reportWrongLang.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            FragmentManager fm = getFragmentManager();
            ReportWrongLangDialog Dialog = new ReportWrongLangDialog(imageInfo.getParam("imageId")[0], getApplicationContext());
            Dialog.show(fm, "are_you_sure_dialog");
        }
ReportWrongLangDialog中的

我正在保存appContext和imageId

并在对话框中按下报告按钮时,我想启动将报告图像的后台服务

onClick的代码

report.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            System.out.println("got imageid: " + imageId);
            Intent intent = new Intent(appContext, ReportImageService.class);
            intent.putExtra("ReportType", "IMAGE_REPORT");
            intent.putExtra("ImageID", imageId);
            intent.putExtra("Extra", "2");
            appContext.startService(intent);
            System.out.println("after service start");
        }
    });

其中ReportImageService.class是我想要启动的服务。 当我按下报告按钮时没有任何事情发生..

可能是什么问题?我只能假设applicationContext有一些问题

1 个答案:

答案 0 :(得分:2)

我的应用程序遇到了同样的问题。 对我有用的解决方案是: 而不是传递你的上下文并在以后使用它(使用getContextApplication()方法),还有另一种方法,传递:

  

YourActivityName.this

作为您的上下文,然后从此对象调用您的startService()方法。