2
從本文中剔除more efficient way of updating ui from service我想知道是否可以進一步實施以下操作,但我可能會誤解我的Apps生命週期。活動堆棧的全局應用程序類
public class MyApplication extends Application {
private static final String TAG = MyApplication.class.getSimpleName();
private static Stack<MyActivity> mActivityStack = mew Stack<MyActivity>();
private static String mTopActivity = "none";
public static void pushActivity(MyActivity activity)
{
mActivityStack.push(activity);
mTopActivity = activity.getClass().getSimpleName();
Log.i(TAG, "push::"+mTopActivity);
}
public static void popActivity()
{
Log.i(TAG, "pop::"+mTopActivity);
mActivityStack.pop();
}
@Override
public void onLowMemory() {
super.onLowMemory();
Log.w(TAG, "low memory!!!");
Log.w(TAG, "Current::"+mTopActivity);
}
}
public class MyActivity extends Activity
{
private static final String TAG = MyActivity.class.getSimpleName();
public void onCreate(Bundle last)
{
super.onCreate(last);
MyApplication.pushActivity(this);
}
public void onDestroy()
{
super.onDestroy();
MyApplication.popActivity();
}
}
堆棧在應用程序的生命週期中是否有效?
正如CommonsWare所說,這並沒有奏效。此外,從Activity派生出來並不是一個好主意,因爲那樣你還必須得到列表的活動,優先級等等。顯然,我認爲這不會解決任何問題,它只是Android生命週期中的一個實驗。
呃一眼就看不到,因爲你從來沒有真正創建過Stack類型的對象,因此mActivityStack將始終爲空。當運行這段代碼時,我會期待push/popActivity的空指針異常。 –
忘記將名稱編輯爲MyActivity = x。另外,忘了實例化我的stack = x。更新和修復。 –