源于这篇文章more efficient way of updating UI from service我想知道我是否可以更进一步并实施以下内容。我可能对我的应用程序生命周期有误解。
public class MyApplication extends Application {
private static final String TAG = MyApplication.class.getSimpleName();
private static Stack<MyActivity> mActivityStack = new 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派生并不是一个好主意,因为你还必须得到listactivity,preferenceactivity等。显然,我不认为这会解决任何问题,它只是android生命周期中的一个实验。
答案 0 :(得分:1)
在应用程序的生命周期中堆栈是否有效?
当然不会有效。您假设每个活动都以相同的顺序创建和销毁。它们不会在很多情况下(例如,用户按下HOME)。
无论你认为你用这种方式解决什么问题,这都不是任何想象力的正确解决方案。