Android service 判断前台activity
问题描述:
如何在service中判断当前前台运行的是哪个Activity(如果当前应用在前台的话)?
答
一般的话,都会自己建立一个activity的管理栈,所有activity都继承BaseActivity, Base中管理入栈出栈,当前前台运行的activity 就是栈顶的那个咯
答
ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
String activity = am.getRunningTasks(1).get(0).topActivity.getClassName();
答
楼上已经说出了思路了,我这里直接给你帖段代码
public class ActivityController
{
public static List<Activity> mActivityList = new ArrayList<Activity>();
private static Activity mCurrentActivity;
public static void addActivity(Activity activity) {
mActivityList.add(activity);
}
public static void removeActivity(Activity activity) {
mActivityList.remove(activity);
}
public static void setCurrentActivity(Activity activity) {
mCurrentActivity = activity;
}
public static Activity getCurrentActivity() {
return mCurrentActivity;
}
public static void finishAll() {
for (Activity activity : mActivityList) {
if (!activity.isFinishing()) {
activity.finish();
}
}
}
}
基类在做相应处理就行,然后要获取当前前台Actitivy直接获取mCurrentActivity就行