2 o casper ne O_Casper_ne 于 2013.08.29 17:13 提问

从不同的 Activity 中停止和取消服务

我在 preference activity 中添加了 exit 选项,在这个选项中我想停止和取消服务。但是程序关了,服务器没有停止。我从另一个 activity 中开启和绑定服务。在 preference activity 中我没有开启也没绑定。
preference activity 代码:

Preference exit = findPreference("Exit");
        exit.setOnPreferenceClickListener(new OnPreferenceClickListener() {

            public boolean onPreferenceClick(Preference preference) {
                // TODO Auto-generated method stub
                new AlertDialog.Builder(SettingsActivity.this)
                .setTitle("Exit :")
                .setMessage("Are You Sure??")
                .setNegativeButton("No", null)
                .setPositiveButton("Yes",
                        new Dialog.OnClickListener() {
                            public void onClick(DialogInterface dialog, int which) {

                                stopService(new Intent(getApplicationContext(), MyService.class));                              
                                Intent intent = new Intent(Intent.ACTION_MAIN);
                                intent.addCategory(Intent.CATEGORY_HOME);
                                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                                startActivity(intent);
                            }
                        })
                .show();
                return true;
            }
        });

但是 myservice 不能停止。如何停止服务器?
获得的错误:

08-28 10:20:30.699: E/AndroidRuntime(18503): FATAL EXCEPTION: main
08-28 10:20:30.699: E/AndroidRuntime(18503): java.lang.IllegalArgumentException: Service not registered: com.androidhive.musicplayer.SettingsActivity$1@405c7af8
08-28 10:20:30.699: E/AndroidRuntime(18503):    at android.app.LoadedApk.forgetServiceDispatcher(LoadedApk.java:891)
08-28 10:20:30.699: E/AndroidRuntime(18503):    at android.app.ContextImpl.unbindService(ContextImpl.java:901)
08-28 10:20:30.699: E/AndroidRuntime(18503):    at android.content.ContextWrapper.unbindService(ContextWrapper.java:352)

修改过的代码:

getApplicationContext().stopService(new Intent(SettingsActivity.this, MyService.class));                    getApplicationContext().unbindService(serviceConnection);
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!