4

我开发了一个小应用程序,它使用几个不同的类来允许用户添加、删除和查看某些数据。我使用 arrayList 来存储条目,它有自己的类,该类具有链接到数组的方法,因此我可以从我的所有类中访问该数组。

我想介绍上述方法来优化我的代码,并想知道我是否可以将它们放在一个类中,希望与我有我的数组的应用程序类相同,并在那里定义它们将被使用的地方,这将让我不必在几个类中编写相同的代码,这可能吗?

谢谢

4

4 回答 4

14

Android 调用onPauseonResume、时的示例。onDestroy

暂停()

OnPause()当用户收到电话或短信等事件时调用,onPause()调用时Activity可能会部分或完全隐藏。

您可能希望将用户数据保存在 中onPause,以防他在没有明确保存数据的情况下点击返回按钮。

OnResume()

OnResume()当用户恢复他刚刚Activity离开的他时调用,例如他按下主页按钮然后返回应用程序,onResume()被调用。

您可以在此处进行与网络相关的更新,也可以在onResume.

OnDestroy()

OnDestroyActivity被系统或用户销毁时调用,例如通过回击,直到应用程序退出。

您必须保存您想要持久保存的任何用户数据onDestroy(),因为系统不会为您执行此操作。

话虽如此,我必须告诉您,您不能在 onPause() 和 onDestroy() 中调用任何用户定义的方法,因为它们是在某些情况下调用的,并且除了我上面指定的操作之外,它们不会执行任何操作。

当 Activity 启动时,onCreate()调用设置您的屏幕,然后调用onResume(),您可以使用onResume它来做您想做的事情,但强烈建议您创建另一个类来进行此类操作,这有时可能是数据密集型的。最后调用你在另一个类中创建的那些方法onCreate()和.onResume()Activity

于 2012-04-27T16:46:50.840 回答
3

最好是包含您的覆盖方法代码的基本活动,然后您可以将其扩展为您的活动而不是活动。

所以所有扩展baseactivity的activity都会用三种方法来体现。

public class BaseActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
    }
   @Override
protected void onPause(){
    super.onPause();

}
@Override
protected void onResume(){
    super.onResume();

}
@Override
protected void onDestroy(){
    super.onDestroy();

}

}

请注意您要在上述三种方法中执行什么任务?它们在所有活动中是否相同,然后仅使用上述内容。

于 2012-04-27T16:35:43.690 回答
2

不确定这是否是您正在寻找的,但请尝试单例模式。这将允许从任何活动访问您的类对象。IE。MyObject 对象 = Singleton.getInstance();

于 2012-04-27T16:31:18.810 回答
0

好吧,您可以创建一个扩展 Activity 的 BaseActivity 类,覆盖您想要覆盖的方法,而不是在所有其他活动上扩展 Activity,而是扩展 BaseActivity。

于 2012-04-27T16:30:37.027 回答