public abstract class BaseActivity extends AppCompatActivity {
public final String ACTION="NIGHT_SWITCH";
protected BroadcastReceiver receiver;//接收器
protected IntentFilter filter;//过滤
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setNightMode();
filter=new IntentFilter();
filter.addAction(ACTION);
receiver=new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
needRefresh();
}
};
registerReceiver(receiver,filter);
}
public boolean isNightMode(){//判断当前模式
SharedPreferences sharedPreferences= PreferenceManager.getDefaultSharedPreferences(getBaseContext());
return sharedPreferences.getBoolean("nightMode",false);
}
public void setNightMode(){//设置黑夜模式
if (isNightMode()){
SharedPreferences sharedPreferences=PreferenceManager.getDefaultSharedPreferences(getBaseContext());
this.setTheme(R.style.NightTheme);
}
else setTheme(R.style.DayTheme);
}
public abstract void needRefresh();//抽象函数实现刷新所处界面
public long calStrToSec(String date) throws ParseException {//decode calender date to second
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
long secTime = format.parse(date).getTime();
return secTime;
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(receiver);
}
}