Использовать метод другого класса

302
24 января 2017, 22:07

Как можно использовать метод getActivityInstance в классе который реализован в другом классе:

private Activity getActivityInstance(){
    getInstrumentation().runOnMainSync(new Runnable(){
        public void run(){
            Collection<Activity> resumedActivity = ActivityLifecycleMonitorRegistry.getInstance().getActivitiesInStage(Stage.RESUMED);
            for(Activity act : resumedActivity){
                currentActivity = act;
                break;
            }
        }
    });
    return currentActivity;
}
Answer 1

Можно вынести в класс Application

public class YourApp extends Application {
    ...
    public Activity getActivityInstance(){
        getInstrumentation().runOnMainSync(new Runnable(){
            public void run(){
                Collection<Activity> resumedActivity = ActivityLifecycleMonitorRegistry.getInstance().getActivitiesInStage(Stage.RESUMED);
                for(Activity act : resumedActivity){
                    currentActivity = act;
                    break;
                }
            }
        });
        return currentActivity;
    }
    ...
}

Вызов из любого места в активности:

((YourApp) YourActivity.this.getApplication()).getActivityInstance();

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

READ ALSO
Java IO. Как получить из BufferedInputStream сам буфер?

Java IO. Как получить из BufferedInputStream сам буфер?

Помогите разобраться я использую BufferedInputStream:

317
Fixtures in espresso

Fixtures in espresso

Кто применял фикстуры в своих тестах? И как правильно/можно их использовать? На сколько я понял, это значительно ускоряет процесс тестирования,...

319
JavaFX Как узнать координаты курсора, который находится в TextField?

JavaFX Как узнать координаты курсора, который находится в TextField?

Нашел только getCaretPosition(), но это немного не то

668