@Override
 public int onStartCommand(Intent intent, int flags, int startId) {
   if (intent == null) {
     return 0;
   }
   int cmd = intent.getIntExtra(EXTRA_CMD, 0);
   final String param = intent.getStringExtra(EXTRA_STR1);
   if (cmd == CMD_OPEN_VOCAB) {
     cancelSelect();
     m_words.open(param);
   } else if (cmd == CMD_CANCEL_VOCAB) {
     cancelSelect();
   } else if (cmd == CMD_CLOSE_VOCAB) {
     cancelSelect();
     m_words.close();
   } else if (cmd == CMD_GET_WORDS) {
     m_newWord = param;
     if (m_bRun) {
       m_words.cancelSync(true);
     } else {
       asyncOper(param);
     }
   } else if (cmd == CMD_SAVE_WORD) {
     m_words.getUserWords().addWord(param);
   }
   return super.onStartCommand(intent, flags, startId);
 }
 @Override
 public void onDestroy() {
   m_words.close();
   inst = null;
 };