我的应用程序仅在后台运行。作为活动,我只有设置,按下开始按钮后,调用服务并完成活动。为此,我使用调用 PreferenceFragment 的 MainActivity:
@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);
}
}
在settings_layout 中还定义了两个Preference 项:Start 和Exit。
我想将功能开始和退出放置在菜单中,作为布局中的项目。在启动服务的 xml 文件中创建意图很容易,但我不知道如何关闭活动。我如何在 Activity(调用 PreferenceFragment)中实现 finish() 函数以杀死她自己?如何在 Activity 中获取“Press Exit”事件?在 PreferenceFragment 中获取事件足以实现监听器,例如:
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPref, String key) {
Preference pref = findPreference(key);
/* Do something */
}
}
但在那之后我不知道如何关闭活动。任何想法?非常感谢!