2013-02-13 5 views
0

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

Как я могу проверить этот класс, активность которого фактически отображается на экране?

+0

Просьба уточнить. Я не понимаю, о чем вы спрашиваете. – Synaero

+0

Ничего не понимаю. будьте конкретны в своей проблеме в своем вопросе..dude – Shadow

+0

Похоже, что очень плохая практика, что вы пытаетесь сделать: S –

ответ

6

Вы можете использовать ActivityManager, чтобы получить это. Ниже приведен пример кода:

ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE); 


// get the info from the currently running task 
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1); 

Log.d("topActivity", "CURRENT Activity ::" + taskInfo.get(0).topActivity.getClassName()); 

ComponentName componentInfo = taskInfo.get(0).topActivity; 
String packageName = componentInfo.getPackageName(); 

Вам потребуется следующее разрешение на манифеста:

uses-permission android:name="android.permission.GET_TASKS" 

Source

0

Другой способ заключается в создании в пользовательском приложении объекта элемент под названием «активность lastActivityShown "и во всех onCreate из всех видов деятельности вы можете getApplication().setLastActivityShown(this) таким образом, что вам не нужны разрешения. Вы также можете создать BaseActivity, у которого есть эта логика, и получить все действия, расширяющие это.

Смежные вопросы