Android-找出用户当前在哪个上下文/活动中?

问题描述

| 我的应用程序有一些活动和后台服务。我的问题是,如果服务中包含上下文变量,如何确定当前打开了哪个活动?我需要执行此操作来指导我的服务采取的下一个动作。例如, 如果(上下文为activity_1){     //执行此操作 }否则,如果(上下文是activity_2){     //改为执行此操作... } 这就是我要尝试做的基本要点。 帮助非常感谢。     

解决方法

        您可以在活动的每个“ 0”方法中设置一个SharedPreferences条目,然后从服务中读取该值。为了保持干净,您可以编写一个执行该操作的活动,然后从中扩展所有活动:
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);