2015-11-12 2 views
0

Я пытаюсь создать приложение с несколькими деятельности:Android сервис для нескольких видов деятельности

  • DashboardActivity
  • SettingsActivity
  • ....

и с одной услуги (передача данные между телефоном и моим устройством).

public class MyService extends Service { 

.... 

    public int onStartCommand(Intent intent, int flags, int startId) { 
     int time = intent.getIntExtra(DashboardActivity.PARAM_TIME, 1); 
     int task = intent.getIntExtra(DashboardActivity.PARAM_TASK, 0); 
     String strMAC = intent.getStringExtra(DashboardActivity.PARAM_MAC); 
     String strMESS = intent.getStringExtra(DashboardActivity.PARAM_MESSAGE); 

.... 

} 

Поэтому я могу начать свое обслуживание с DashboardActivity. Установите соединение, получите данные. Но мне нужно получить эти данные, когда я запускаю SettingsActivity в SettingActivity.

В моей DashboardActivity, у меня есть вещательный приемник:

// create BroadcastReceiver 
br = new BroadcastReceiver() { 
    // действия при получении сообщений 
    public void onReceive(Context context, Intent intent) { 
     int task = intent.getIntExtra(PARAM_TASK, 0); 
     int status = intent.getIntExtra(PARAM_STATUS, 0); 
     //Log.d(LOG_TAG, "onReceive: task = " + task + ", status = " + status); 

     // looking for start status 
     if (status == STATUS_START) { 
      switch (task) { 
       case TASK1_CODE: 
        tvTask1.setText("Task1 start" + connectionSTATE); 
        break; 
       case TASK2_CODE: 
        tvTask2.setText("Task2 start"+connectionSTATE); 
        break; 
       case TASK3_CODE: 
        tvTask3.setText("Task3 start"+connectionSTATE); 
        break; 
      } 
     } 

     // looking for result status 
     if (status == STATUS_FINISH) { 

      //String result = intent.getStringExtra(PARAM_RESULT); 
      int[] result = intent.getIntArrayExtra(PARAM_RESULT); 
      switch (task) { 
       case TASK1_CODE: 
        tvTask1.setText("Task1 finish, result = " + Arrays.toString(result)+" "+connectionSTATE); 
        break; 
       case TASK2_CODE: 
        tvTask2.setText("Task2 finish, result = " + Arrays.toString(result)+" "+connectionSTATE); 
        break; 
       case TASK3_CODE: 
        tvTask3.setText("Task3 finish, result = " + Arrays.toString(result) + " " + connectionSTATE); 
        myView.setLabelText(Arrays.toString(result)); 
        //String message =Integer.toHexString(result[1]); 
        onClicksent_data(Integer.toHexString(result[1])); 
        break; 
      } 
     } 
    } 
}; 
// Filter BroadcastReceiver 
IntentFilter intFilt = new IntentFilter(BROADCAST_ACTION); 
// turnOn BroadcastReceiver 
registerReceiver(br, intFilt); 

Как я могу сделать это в SettingsActivity?

Как отправить задачу на одну услугу из разных видов деятельности и обновить данные для этих действий?

ответ

0

Я использовал для создания приложения с использованием контейнера Activity с различными фрагментами, и я включил регистрацию трансляции и трансляции в этой активности контейнера, чтобы мои фрагменты могли совместно использовать этот трансляционный транслятор. Но я должен начать свое обслуживание до моего регистрации трансляции в своей деятельности или начать ее с помощью системы вне приложения.

Я хочу сказать, что вы должны проектировать свою структуру данных. Если вы хотите, чтобы ваши действия в вашем приложении делились одним транслятором, я предлагаю вам поставить этот стартовый сервис, зарегистрировать трансляцию и трансляцию трансляции и т. Д. В вашем манифесте.

+0

Я нахожу другой способ. Это проще для меня, для использования ViewFlipper)) Но спасибо! Я попытаюсь использовать ваше предложение в будущем! –