回顾这篇文章列举了使用单例的几个问题 并看过使用单例模式的Android应用程序的几个例子,我想知道使用Singletons而不是通过全局应用程序状态共享的单个实例是一个好主意(继承android.os.Application并获取它通过context.getApplication()).
两种机制都有哪些优点/缺点?
说实话,我希望在这篇文章中使用Web应用程序的单例模式得到相同的答案,不是一个好主意!但适用于Android.我对么?DalvikVM有什么不同呢?
编辑:我想对涉及的几个方面有意见:
我正在开发一个相当复杂的Android应用程序,它需要关于应用程序的大量数据(我说总共大约500KB - 这对于移动设备来说是否很大?).据我所知,应用程序中的任何方向更改(在活动中,更准确地说)会导致活动的完全破坏和重新创建.根据我的发现,Application类没有相同的生命周期(即,所有意图和目的,它总是被实例化).将状态信息存储在应用程序类中然后从Activity引用它是否有意义,或者由于移动设备上的内存限制,这通常不是"可接受的"方法?我真的很感激有关这个主题的任何建议.谢谢!
我需要inString在其他课程中获得变量.我怎样才能做到这一点?
public class main {
public static StringBuffer inString;
public static void main(String[] args) {
inString = new StringBuffer("Our aim is to make a 15 realistic game, where grinding powerlines and doing a tailwhip isn't easy, like in the real world. A game in which you will feel like you're actual riding. A game in which creativity and beauty are combined. ");
inString = new StringBuffer(inString.toString().replaceAll(" +", " "));
}
}
Run Code Online (Sandbox Code Playgroud)
所以我尝试System.out.println(main.inString);在我的Textcl.class中使用,但得到null.
我希望在按钮点击内传递一些值,同时更改viewpager选项卡片段.我有两个问题.
如果我使用静态数据会有什么问题?如:
public static string abc=""
case R.id.IVActionMore:
ViewPager viewPager = (ViewPager) getActivity().findViewById(R.id.tabs_viewpager);
viewPager.setCurrentItem(3);
//abc = "action";
break;
Run Code Online (Sandbox Code Playgroud)所以我有一个管理工作人员的应用程序.在应用程序的一个部分中,我有一个从Web服务检索到的工作程序列表.然后,用户从列表中选择一个工作器,列表将启动一个新活动(将Workorder对象传递给它),显示工作订单详细信息.用户可以在此期间编辑部分工作订单.如果用户返回列表(通过后退按钮),我需要将修改后的工作单BACK传递给工作单列表,并使用新修改的对象更新或替换旧对象.否则,(当前正在发生)用户编辑工作订单,但如果他们返回列表并再次选择相同的工作订单,则工作订单详细信息activty将显示所有旧数据.做这个的最好方式是什么.目前我有Workorder类实现Serializable,因此可以将workorder对象传递给连续的活动.
这样可行:列表 - >工作订单A.
但这就是我遇到问题的地方:List < - Workorder A(已修改)
我不确定我是否应该使用startActivtyForResult并传回工作订单对象.我知道这是可能的,但我不确定是否有更优雅的方法来做到这一点.感谢您提供的任何帮助,非常感谢!