【发布时间】:2014-12-19 14:43:16
【问题描述】:
由于这个问题 (Using static methods in Android?) 已经得到解答,我还有另一种情况,我不确定使用静态方法是否有效。
在一个名为 SettingsActivity 的活动中,我有一个名为 finishActivityWithResultOkey() 的方法:
public void finishActivityWithResultOkey() {
Intent resultValue = new Intent();
resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);
MyWidgetProvider.setSharedPreferences();
MyWidgetProvider.startScreenReciever();
MyWidgetProvider.startClockTickAlarm(false);
context.setResult(RESULT_OK, resultValue);
context.finish();
}
在我完成我的 SettingsActivity 之前,我在另一个扩展 AppWidgetProvider 的类中调用这 3 个静态方法:
public void setSharedPreferences() {
db = new SharedPreferencesDatabase(PreferenceManager.getDefaultSharedPreferences(_context));
}
public static void startScreenReciever() {
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
screenReciever = new ScreenReceiver();
_context.getApplicationContext().registerReceiver(screenReciever, filter);
}
public static void startClockTickAlarm(boolean code) {
AlarmManager alarmManager = (AlarmManager)_context.getSystemService(Context.ALARM_SERVICE);
long duration;
if(code)
duration = utcMillisNextMin();
else
duration = utcMillisNextSec();
if(android.os.Build.VERSION.SDK_INT < 19) {
alarmManager.set(AlarmManager.RTC, duration, createClockTickIntent());
} else {
alarmManager.setExact(AlarmManager.RTC, duration, createClockTickIntent());
}
}
我想知道这些静态方法是否真的需要,或者是否有另一种更好的方法来做到这一点而不使用静态方法
【问题讨论】:
标签: android static static-methods