Java模式设计之单例模式
作者:网络转载 发布时间:[ 2014/4/21 13:31:54 ] 推荐标签:Java 开发 测试技术
|
package com.frewen.ttplayer;
importjava.util.ArrayList;
importjava.util.LinkedList;
importjava.util.List;
importandroid.app.Activity;
importandroid.app.Application;
importandroid.content.Context;
importandroid.graphics.Bitmap;
importandroid.graphics.BitmapFactory;
importandroid.media.MediaPlayer;
importandroid.util.Log;
import com.frewen.ttplayer.entry.Music;
import com.frewen.ttplayer.entry.impl.Musicdata;
import com.frewen.ttplayer.util.MusicPreference;
public classMyApplication extends Application {
public static MediaPlayer mediaPlayer;
public static MusicPreferencemusicPreference;
public static ArrayList<Music> musics= new ArrayList<Music>();
public static boolean isStart = false;
public List<Activity> activityList =new LinkedList<Activity>();
public static Bitmap bitmap_l;
public static Bitmap bitmap_s;
public static MyApplication instance;
public ArrayList<Music> getMusics() {
return musics;
}
public static Context context;
@Override
public void onCreate() {
super.onCreate();
context = getApplicationContext();
new Thread(new Runnable() {
@Override
public void run() {
setMusics(Musicdata.getMultiDatas(context));
bitmap_l = BitmapFactory.decodeResource(context.getResources(),
R.drawable.default_bg_l);
bitmap_s =BitmapFactory.decodeResource(context.getResources(),
R.drawable.default_bg_s);
}
}).start();
mediaPlayer = new MediaPlayer();
musicPreference = new MusicPreference(context);
}
public void setMusics(ArrayList<Music>ms) {
musics.clear();
musics = ms;
Log.i("test", "列表长度" + this.musics.size());
}
public MyApplication() {
}
// 单例模式中获取的MyApplication实例
public static MyApplication getInstance() {
if (null == instance) {
instance = new MyApplication();
}
return instance;
}
// 添加Activity到容器中
public void addActivity(Activity activity) {
activityList.add(activity);
}
// 遍历所有Activity并finish
public void exit() {
for (Activity activity : activityList) {
activity.finish();
}
System.exit(0);
}
/**
* 向musics集合中追加一组miusic信息
*
*@param musics
*/
public void append(ArrayList<Music>musics) {
if (musics != null) {
this.musics.addAll(musics);
}
}
public void append(Music music) {
if (music != null) {
this.musics.add(music);
}
}
}
|
android系统会为每个程序运行时创建一个Application类的对象且仅创建一个,所以Application可以说是单例 (singleton)模式的一个类.application对象的生命周期是整个程序中长的,它的生命周期等于这个程序的生命周期。因为它是全局的单例的,所以在不同的Activity,Service中获得的对象都是同一个对象。所以通过Application来进行一些,数据传递,数据共享等,数据缓存等操作。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
Java性能测试有哪些不为众人所知的原则?Java设计模式??装饰者模式谈谈Java中遍历Map的几种方法Java Web入门必知你需要理解的Java反射机制知识总结编写更好的Java单元测试的7个技巧编程常用的几种时间戳转换(java .net 数据库)适合Java开发者学习的Python入门教程Java webdriver如何获取浏览器新窗口中的元素?Java重写与重载(区别与用途)Java变量的分类与初始化JavaScript有这几种测试分类Java有哪四个核心技术?给 Java开发者的10个大数据工具和框架Java中几个常用设计模式汇总java生态圈常用技术框架、开源中间件,系统架构及经典案例等

sales@spasvo.com