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が述べたように、これはうまくいかなかった。明らかに、私はこれがアンドロイドのライフサイクルにおける単なる実験であったどんな問題も解決するとは思っていませんでした。しかし、あなたはアクティビティから派生するのは良い考えではありません。
実際にタイプStackのオブジェクトを実際に作成したことがないため、mActivityStackは常にnullになるため、一見しただけです。私は、このコードが実行されるときに、push/popActivityからのヌルポインタ例外を期待しています。 –
名前をMyActivity = xに編集するのを忘れました。また、私のstack = xをインスタンス化するのを忘れてしまった。更新され、固定されています。 –