手机影音1--SplashActivity

/**
 * 1.设置被启动的Activity为单例模式
 */

public class SplashActivity extends Activity {

    /**
     * 是否已经启动主页面
     */
    private boolean isStartMain = false;

    private static final String TAG = SplashActivity.class.getSimpleName();

    private  Handler handler = new Handler();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);

        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                //这个方法执行是在主线程
                Log.e(TAG, "当前线程的名称:" + Thread.currentThread().getName());
                startMainActivity();
            }
        }, 3000);
    }

    /**
     * 启动主页面
     */
    private void startMainActivity() {
        if(!isStartMain){
            isStartMain = true;
            Intent intent = new Intent(this,MainActivity.class);
            startActivity(intent);
            finish();//关闭当前页面
        }
    }

    @Override
    protected void onDestroy() {
//       isStartMain = true;
         handler.removeCallbacksAndMessages(null);//把消息队列里面的所有回调和消息移除
          super.onDestroy();
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        startMainActivity();
        return super.onTouchEvent(event);
    }
}

1.Handler在哪个线程new,Runnable就在哪个线程执行  

2.有一个bug,启动了多次Activity,如何解决?

方法①.设置为启动的Activity只能是单例。
  在功能清单文件android:launchMode="singleTask"
 方法②.从源头上控制,执行代码只一次

private boolean isStartMain = false;
/**
 * 跳转到主页面,并且把当前页面关闭掉
 */
private void startMainActivity() {
	if(!isStartMain){
		isStartMain = true;
		Intent intent = new Intent(this,MainActivity.class);
		startActivity(intent);
		//关闭当前页面
		finish();
	}
}

  

时间: 2024-08-03 10:09:24

手机影音1--SplashActivity的相关文章

Android 手机影音 学习过程记录(六)

前一篇已经将音乐播放及切换的相关逻辑弄好了,今天主要理一下剩余的部分,包括: 1. 自定义通知栏的布局及逻辑处理 2. 滚动歌词的绘制 3. 歌词解析 效果图 通知栏 自定义布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layou

黑马2018年最新kotlin项目实战视频 (手机影音、即时通讯、黑马外卖、坦克大战等)

├─1.kotlin简介和学习方法│ 01_kotlin课程简介_01.mp4│ 02_kotlin学习方法_01.mp4│ 03_kotlin选好教练车_01.mp4│ 03_kotlin选好教练车_02.mp4│ 04_kotlin你好世界_01.mp4│ 05_kotlin变量与输出_01.mp4│ 05_kotlin变量与输出_02.mp4│ ├─10.类,对象和接口(三)│ 38_kotlin面向对象-抽象类和接口_01.mp4│ 38_kotlin面向对象-抽象类和接口_02.mp4

手机影音第六天 自定义播放器页面的实现(按钮暂时未监听)

目前进度的项目源代码托管在里码云上,地址如下: https://git.oschina.net/joy_yuan/MobilePlayer 感兴趣的可以去下载看看,多多支持 这次就摒弃了系统自带的控制栏,即之前写的通过系统自带的控制栏 videoview.setMediaController(new MediaController(this)); 转而自己写控制器布局,实际截图如下: 效果图: 一.Activity的声明周期重温与横竖屏切换时的问题 有2个页面,A页面,B页面,下面括号里的A,B

手机影音第十四天,本地音乐列表的展示与播放(利用视频播放的布局)

代码已经托管到码云,有兴趣的小伙伴可以下载看看 https://git.oschina.net/joy_yuan/MobilePlayer 效果图: Android系统提供了MediaScanner,MediaProvider,MediaStore等接口,并且提供了一套数据库表格,通过Content Provider的方式提供给用户.当手机开机或者有SD卡插拔等事件发生时,系统将会自动扫描SD卡和手机内存上的媒体文件,如audio,video,图片等,将相应的信息放到定义好的数据库表格中.在这个

手机影音第十七天,实现歌词同步

代码已托管到码云,有兴趣的小伙伴可以下载看看 https://git.oschina.net/joy_yuan/MobilePlayer 效果图: 有一个小的遗憾,就是该MP3文件和歌词文件要在同一路径下,才能读取到歌词,否则读取不到录音文件. 将录音文件发到这里,是.lrc格式的文件,其实TXT文件的也行:如果在手机上显示是乱码的话,就改一下文件的编码为Unicode,再尝试下. [ti:北京北京] [00:00.05]献给我最爱的老婆 --常长丽 [00:02.17]歌曲名:北京北京 [00

手机影音第五天 视频列表的显示与播放以及个别牌子手机播放的问题

先展示下本次做好的效果: 接着上次的说,上次说到了去获取手机里的视频信息,下面就用listview来展示视频列表与调用系统播放器来播放视频. 1.根据获取到的视频列表,去设置适配器Adapter,然后利用前面写的listview的例子,来展示数据,这个就不详细说明了. 2.点击单个listview的数据,来监听其事件,在监听的方法里,去调取播放方法. 2.1利用隐式意图去调用所有符合要求的播放器.     class MyOnItemClickListener implements Adapte

手机影音第十五天,利用service实现后台播放音乐,在通知栏显示当前音乐信息等

代码已经托管到码云上,有兴趣的小伙伴可以下载看看 https://git.oschina.net/joy_yuan/MobilePlayer 先来一张目前的音乐播放器的效果图,当播放时,手机的状态通知栏也会有音乐信息显示. 这里可以看到有歌名.演唱者,还有歌曲的总时间,当前播放时间,当前播放进度,音乐暂停.下一首,上一首,音乐循环模式(单曲循环,顺序播放.循环播放)功能的实现.下一步就是把中间空白的部分填充歌词,然后做成根据进度显示歌词. 由于这次的内容有点多,是写了一天半的代码,讲的没那么细,

手机影音第十天,控制屏幕上下滑动改变音量变化,监听物理键改变音量

代码已托管至码云上,有兴趣的小伙伴可以下载看看,IDE是Android studio 2.3.2 https://git.oschina.net/joy_yuan/MobilePlayer 常见的手机播放器,都有屏幕上下滑动改变音量大小的功能,在此也实现下: 原理是: 1.从手指触碰屏幕,到离开屏幕,计算滑动的高度差,然后拿这个高度差与屏幕的高对比,最后结合总音量,得到改变的音量,具体的公式如下 : 改变的音量=(滑动距离差/屏幕总高度)*总音量 结束滑动后的音量=触碰屏幕时的音量+改变的音量

手机影音第四天,顶部标题栏的布局实现与本地视频的搜索

前面讲了下面的菜单布局与中间的fragmentLayout的布局与实现,今天就写了顶部title的布局以及去搜索本地sd卡里的视频. 一.顶部布局实现 效果图如下: 1.分析下: a.这个顶部布局是个LinearLayout布局 b.左侧这个321影音是个ImageView,然后这个搜索框是一个TextView,右侧的游戏图标是个相对布局,里面是一个textview和一个Image构成的点,最右侧的那个记录是一个Imageview c.最主要的是中间的这个搜索框,为什么是一个textview呢,

手机影音第十一天,显示视频缓冲,显示卡顿时的网速,播放系统视频时调用播放器的选择

代码已经托管到码云,有兴趣的小伙伴可以下载看看 https://git.oschina.net/joy_yuan/MobilePlayer 一.设置视频缓冲进度 显示视频播放进度的效果图如下:灰色的是缓冲的进度. 原理:只有播放网络视频时,才有缓冲这个说法,所以要先判断视频资源是否为网络资源 /**  * 判断是否是网络的资源  * @param uri  * @return  */ public boolean isNetUri(String uri) {     boolean reault