我希望用户可以启动或停止在我打开应用时实际自动启动的服务。我尝试这样做但不起作用:
在首选项类
中public class UsersettingsActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
CheckBoxPreference checkboxPref = (CheckBoxPreference)getPreferenceManager().findPreference("firstDependent");
checkboxPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference, Object newValue) {
boolean myValue = (Boolean) newValue;
if(myValue){
startService(new Intent(UsersettingsActivity.this, SimpleKitkatNotificationListener.class));
}else{
stopService(new Intent(UsersettingsActivity.this, SimpleKitkatNotificationListener.class));
}
return true;
}
});
}
}
但不行。我也尝试写这个来检查:
private boolean isMyServiceRunning() {
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if (SimpleKitkatNotificationListener.class.getName().equals(service.service.getClassName())) {
Toast.makeText(getApplicationContext(), "started", Toast.LENGTH_LONG);
return true;
}
}
return false;
}
我在MainActivity中调用了该方法,并且我调用了onCreate()但没有启动。