Я разрабатываю приложение для переводчика, и по некоторым причинам я хочу инициировать некоторую услугу в классе приложений. я создать класс «MyApplication», который расширяет применение:сервис не останавливается на фрагменте, который начинается с класса приложения
public class MyApplication extends Application{
@Override
public void onCreate() {
if(PreferenceUtils.getPreferenceValue(getApplicationContext(),"clipBoardService").equals(""))
PreferenceUtils.setPreferenceValue(getApplicationContext(),"clipBoardService","True");
//Start ClipBoard Services
if(PreferenceUtils.getPreferenceValue(getApplicationContext(),"clipBoardService").equals("True"))
getApplicationContext().startService(new Intent(getApplicationContext(), ClipboardService.class));
}
вы видите, что я начинаю ClipboardService с этой строки кода:
getApplicationContext().startService(new Intent(getApplicationContext(), ClipboardService.class));
и по некоторым другим причинам я хочу, чтобы остановить эту услугу один из моих фрагмента, назвал его «SettingFragment»:
public class SettingFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
View inflate = inflater.inflate(R.layout.fragment_setting, container, false);
SwitchCompat scClipBoard = (SwitchCompat) inflate.findViewById(R.id.sb_ClipBoard_Service);
SwitchCompat scPopUp = (SwitchCompat) inflate.findViewById(R.id.sb_PopUp_Service);
// Turn On CheckBox's
if(PreferenceUtils.getPreferenceValue(getContext(),"clipBoardService").equals("True"))
scClipBoard.setChecked(true);
if(PreferenceUtils.getPreferenceValue(getContext(),"popUpService").equals("True"))
scPopUp.setChecked(true);
// handle OnCheckListener of CheckBox's
scClipBoard.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked == true){
PreferenceUtils.setPreferenceValue(getContext(), "clipBoardService", "True");
getActivity().getApplicationContext().startService(new Intent(getActivity().getApplicationContext(), ClipboardService.class));
}
else{
PreferenceUtils.setPreferenceValue(getContext(), "clipBoardService", "False");
getActivity().getApplicationContext().stopService(new Intent(getActivity().getApplicationContext(), ClipboardService.class));
}
}
});
вы видите, что я остановить работу с этой строки кода:
getActivity().getApplicationContext().stopService(new Intent(getActivity().getApplicationContext(), ClipboardService.class));
но когда я запускаю свою программу, сервис не останавливается. Я смущаюсь, что происходит, и почему мой сервис не является STOP.am. Я ошибаюсь в некоторых пунктах? наилучшие пожелания ...
благодарит за ответ.Но никаких изменений не произошло! У меня есть один вопрос. В этой строке кода: 'getActivity(). stopService (новый Intent (...)); ' Я вызываю метод stopServic следующим образом: ' getActivity(). StopService (новый Intent (getActivity(). GetBaseContext(), ClipboardService.class)); ' это правда? –
если он работает ... PLS принять ответ – rafsanahmad007
ничего change.i отладить программу и найти Удивительную вещь. Когда я перехожу к myFragment, запуск службы автоматически :( Я отслеживаю приложение с момента запуска приложения до начала процесса fragement lifeCycle (onCreate Method). Служба не работает. Когда я перехожу к фрагменту, запуск службы выполняется автоматически. Я испорчен ... очень очень смущен! –