Слабое связывание и стартовая деятельность

Я хочу, чтобы мое приложение было как можно более слабо связанным, и большая часть работы выполняется с помощью IoC.

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

где лучше всего написать код для запуска моей деятельности? это в том же действии, которое запускает другое действие? или есть какая-то внешняя логика по этому поводу?

У меня есть деятельность А

с которого мне нужно начать действие B

куда мне деть логику

Intent intent = new Intent(this, B.class);
startActivityForResult(intent, requestingB); 

person Lena Bru    schedule 20.01.2014    source источник
comment
Ваш вопрос в лучшем случае расплывчатый.   -  person Umer Farooq    schedule 20.01.2014
comment
@UmerFarooq отредактировано, посмотрите, поможет ли это   -  person Lena Bru    schedule 20.01.2014
comment
Когда вы хотите запустить Activity B?   -  person Umer Farooq    schedule 20.01.2014
comment
обычно по нажатию кнопки   -  person Lena Bru    schedule 20.01.2014


Ответы (2)


Похоже, вы пытаетесь создать действие, которое может быть запущено каким-либо другим приложением, и вы не хотите, чтобы действие обязательно знало о том, что его запускает.

Попробуйте использовать intent-filter в своей деятельности. Затем, когда что-то нужно запустить, все, что ему нужно сделать, это запустить намерение с действием, определенным в файле intent-filter.

Как всегда, у Vogella есть хороший туториал: http://www.vogella.com/tutorials/AndroidIntent/article.html

person OrhanC1    schedule 20.01.2014
comment
У меня есть схема навигации, которой я должен следовать, однако где-то в будущем эта схема меняется еженедельно, я не хочу начинать искать все места, где я разместил, теперь запустите действие входа в систему, теперь запустите основное действие, теперь запустите это Мероприятия - person Lena Bru; 20.01.2014
comment
Ах! В этом случае я предлагаю изучить внедрение зависимостей. Я предпочитаю фреймворк RoboGuice! - person OrhanC1; 20.01.2014
comment
Я использую RoboGuice, но как решить проблему с навигацией? где в качестве параметра должен быть указан конкретный класс, можете ли вы показать мне пример? - person Lena Bru; 20.01.2014

Как упомянул в комментариях ОП, он хочет запустить другое действие одним нажатием кнопки, ниже приведен пример кода:

Button myBut = (Button) findViewById(R.id.but1);

myBut.setOnClickListener(new onClickListener()
{
    @override
    public void onClick(View view)
    { 
       Intent intent = new Intent(A.this, B.class);
       startActivity(intent);
    }
});

Надеюсь это поможет

person Umer Farooq    schedule 20.01.2014
comment
нет, это не то, о чем я спрашиваю, я не спрашиваю, как начать деятельность. Я спрашиваю: как свободно связать класс, который мне нужно загрузить, при запуске действия - person Lena Bru; 20.01.2014