【问题标题】:Android: Reusing an activity stored as local variable in another activityAndroid:在另一个活动中重用存储为局部变量的活动
【发布时间】:2011-03-27 17:54:33
【问题描述】:

我的 Android 2.1 应用程序中有两个活动。

第一个是主要活动,提供触摸交互的视图。

第二个是设置活动,提供设置来调整 Main 中使用的参数。

我目前在我的主类中有一个设置活动,作为一个类实例。我在 Main 中读取此实例的设置。

public class Main extends Activity implements View.OnClickListener, View.OnTouchListener {
    protected Settings settings;
}

public class Settings extends Activity implements ListAdapter {
}

我发现了如何重用我的设置活动,如果它已经创建,确保只有一个持久实例:

// within Main.java :
Intent intent = new Intent(this,Settings.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); // reuse existing Settings
this.startActivity(intent);

我的问题是我无法找到如何将它与 Main 中的本地“设置”成员联系起来。

谁能给我一个简单的例子,说明如何将我的本地“设置”实例作为可重用的活动启动?

非常感谢

【问题讨论】:

    标签: android android-activity reusability


    【解决方案1】:

    我目前在我的主类中有一个设置活动,作为一个类实例。

    立即删除。一个活动不应该持有另一个活动,因为这会导致内存泄漏。我向你保证,无论你认为用这种方式解决什么问题,都有更好的解决方案。

    我的问题是我无法找到如何将它与 Main 中的本地“设置”成员联系起来。

    通过删除“Main 中的本地 'settings' 成员”,这个问题就消失了。

    此外,请尽可能使用SharedPreferencesPreferenceActivity 来收集“设置”。例如,如果“Main 中的本地 'settings' 成员”后面的点是允许 Main 访问设置,则正确答案是将设置存储在 SharedPreferences 对象和 @987654327 @ 使用那些SharedPreferences。使用PreferenceActivity 的好处是让用户在向应用程序提供设置时具有他们所期望的外观和感觉。

    【讨论】:

    • 非常感谢您的明确建议。我是 Android 新手,还有很多东西要学。我在这里咨询您的代码以获取一个工作示例:github.com/commonsguy/cw-android/tree/master/Prefs/Dialogs/src/…
    • @KomodoDave:这不是一个坏例子,尽管实际偏好 XML 有点傻——它是为了演示技术,而不是作为一个非常偏好设计的模型。 :-)
    • 要点 - 对于任何感兴趣的人,这里有一个更全面的示例,显示了所需的所有代码/xml:kaloer.com/android-preferences
    猜你喜欢
    • 2011-12-18
    • 2015-02-16
    • 2022-01-21
    • 2013-07-05
    • 1970-01-01
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多