Android - узнать, в каком контексте / деятельности находится пользователь? - PullRequest
2 голосов
/ 15 июня 2011

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

if (context is activity_1) {// выполнить это действие} else if (context is activity_2) {// сделать это вместо ...}

Это основная сутьчто я пытаюсь сделать

Помощь очень ценится.

1 Ответ

2 голосов
/ 15 июня 2011

Вы можете установить запись SharedPreferences в каждом onResume() методе своей деятельности и прочитать это значение из службы. Чтобы сохранить его в чистоте, вы можете написать Activity, которая делает это, а затем расширить все ваши действия:

public class MyActivity extends Activity {
    private static final String PREFS_NAME = "MyPrefsFile";
    @Override
    protected void onResume() {
        getContext().getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE)
            .edit()
            .putInt("activtiyIdRunning", getActivityId() )
            .commit();
        super.onResume();
    }
    abstract protected int getActivityId();
}

public class MyConcreteActivity1 extends MyActivity {
    @Override
    protected int getActivityId() {
        return 1;
    }
    // your normal code
}

к вашим услугам, чем просто позвонить:

int currentActivity = getContext().getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE)
    .getInt("activityIdRunning",-1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...