에서 시작하십시오. 내 응용 프로그램이 백그라운드에서 실행되고 있습니다. 활동으로 나는 단지 설정이 있고, 시작 버튼을 누르면 서비스가 호출되고 활동이 끝납니다. 이를 위해 내가 전화 MainActivity를 사용하고 PreferenceFragment :Android : 활동을 PreferenceFragment
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(android.R.id.content, new MainSettingsFragment()).commit();
}
나는 메뉴
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_settings, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_exit:
finish();
break;
case R.id.action_start:
Intent intentService = new Intent(MainSettingsActivity.this, ReminderService.class);
startService(intentService);
finish();
break;
return true;
}
이 내 매우 간단 PreferenceFragment입니다 만든 서비스 또는 활동 종료를 시작하기 위해, settings_layout을 표시하는 데 사용
public class MainSettingsFragment extends PreferenceFragment{
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings_layout);
}
}
In settings_layout도 두 개의 기본 설정 항목 : 시작 및 종료로 정의됩니다.
레이아웃의 항목으로 메뉴에 배치 된 시작 및 종료 기능을 이동하고 싶습니다. xml 파일에 서비스를 시작하는 인 텐트를 만드는 것은 쉽지만 작업을 종료하는 방법을 알지 못합니다. Self()를 호출하기 위해 Activity (내부 PreferenceFragment)를 호출하는 finish() 함수를 어떻게 구현할 수 있습니까? 활동 내에서 "Exit Exit"이벤트를 어떻게받을 수 있습니까? PreferenceFragment 내부 이벤트를 얻기 처럼, 리스너를 구현하기에 충분하다 :
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPref, String key) {
Preference pref = findPreference(key);
/* Do something */
}
}
그러나 그 후 나는 어떻게 활동을 닫으려면 아무 생각이 없습니다. 아이디어가 있으십니까? 많은 감사!
네, 훌륭합니다! 내 질문은 쉬웠지만 시나리오를 분명하게 설명하고 싶었지만 대답은 꽤 쉬웠지만'getAcivity'에 대해서는 생각하지 않았습니다. 정말 고맙습니다! – Walter