2
我的應用程序有一些活動和一個後臺服務。我的問題是,如果我在服務中有上下文變量,我怎麼知道哪些活動當前打開?我需要這樣做來指導我的服務所採取的下一步行動。例如,Android - 找出用戶當前正在使用的上下文/活動?
如果(上下文activity_1)如果(上下文activity_2){// 採取此措施 }其他{// 做到這一點,而不是... }
這是基本要點我正在嘗試做什麼。
非常感謝。
我的應用程序有一些活動和一個後臺服務。我的問題是,如果我在服務中有上下文變量,我怎麼知道哪些活動當前打開?我需要這樣做來指導我的服務所採取的下一步行動。例如,Android - 找出用戶當前正在使用的上下文/活動?
如果(上下文activity_1)如果(上下文activity_2){// 採取此措施 }其他{// 做到這一點,而不是... }
這是基本要點我正在嘗試做什麼。
非常感謝。
您可以在您的活動的每個onResume()
方法中設置一個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);