存档

2017年6月 的存档

Android中Activity启动模式详解

2017年6月19日 没有评论

  在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在android中Activity的启动模式决定了Activity的启动运行方式。

Android总Activity的启动模式分为四种:

Activity启动模式设置:

<activity android:name=”.MainActivity” android:launchMode=”standard” />

Activity的四种启动模式:

1. standard

默认启动模式,每次激活Activity时都会创建Activity,并放入任务栈中。

2. singleTop

如果在任务的栈顶正好存在该Activity的实例, 就重用该实例,否者就会创建新的实例并放入栈顶(即使栈中已经存在该Activity实例,只要不在栈顶,都会创建实例)。

3. singleTask

如果在栈中已经有该Activity的实例,就重用该实例(会调用实例的onNewIntent())。重用时,会让该实例回到栈顶,因此在它上面的实例将会被移除栈。如果栈中不存在该实例,将会创建新的实例放入栈中。

4. singleInstance

在一个新栈中创建该Activity实例,并让多个应用共享改栈中的该Activity实例。一旦改模式的Activity的实例存在于某个栈中,任何应用再激活改Activity时都会重用该栈中的实例,其效果相当于多个应用程序共享一个应用,不管谁激活该Activity都会进入同一个应用中

大家遇到一个应用的Activity供多种方式调用启动的情况,多个调用希望只有一个Activity的实例存在,这就需要Activity的onNewIntent(Intent intent)方法了。只要在Activity中加入自己的onNewIntent(intent)的实现加上Manifest中对Activity设置lanuchMode=“singleTask”就可以。

onNewIntent()非常好用,Activity第一启动的时候执行onCreate()—->onStart()—->onResume()等后续生命周期函数,也就时说第一次启动Activity并不会执行到onNewIntent(). 而后面如果再有想启动Activity的时候,那就是执行onNewIntent()—->onResart()——>onStart()—–>onResume().  如果android系统由于内存不足把已存在Activity释放掉了,那么再次调用的时候会重新启动Activity即执行onCreate()—->onStart()—->onResume()等。

当调用到onNewIntent(intent)的时候,需要在onNewIntent() 中使用setIntent(intent)赋值给Activity的Intent.否则,后续的getIntent()都是得到老的Intent。

分类: Android 标签: ,

git命令

2017年6月16日 没有评论

git clone git@github.com-personal:H***/ffmpeg.git
cd ffmpeg/
git remote -v
git remote add upstream git://source.ffmpeg.org/ffmpeg.git
git remote -v

git fetch upstream
git checkout master
git merge upstream/master

git checkout -b dev
git push –set-upstream origin dev

阅读全文…

分类: git, 命令 标签: ,

Linux下SpeedTest测速

2017年6月7日 没有评论

wget https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py

chmod +x speedtest.py

测试结果:$ ./speedtest.py
Retrieving speedtest.net configuration…
Testing from Psychz (104.???.???.???)…
Retrieving speedtest.net server list…
Selecting best server based on ping…
Hosted by Time Warner Cable (Los Angeles, CA) [36.79 km]: 316.038 ms
Testing download speed……………………………………………………………………..
Download: 0.91 Mbit/s
Testing upload speed……………………………………………………………………………………
Upload: 2.81 Mbit/s

阅读全文…

分类: Linux 标签: ,

VNC setup on Raspberry Pi from Ubuntu

2017年6月5日 没有评论

VNC setup on Raspberry Pi from Ubuntu

通过SSH连接:

ssh pi@192.168.0.112

默认用户名pi, 默认密码‘raspberry’

配置VNC:

sudo apt-get install tightvncserver

启动VNC:vncserver :1 -geometry 1024x600 -depth 16 -pixelformat rgb565
连接VNC:vncviewer 192.168.0.112:5901
停止VNC:vncserver -kill :1
分类: Linux 标签: , ,

修改SSH默认22端口

2017年6月5日 没有评论

首先修改配置文件
vi /etc/ssh/sshd_config

找到#Port 22一段,这里是标识默认使用22端口,修改为如下:

Port 22
Port 50000
然后保存退出

执行/etc/init.d/sshd restart
这样SSH端口将同时工作与22和50000上。

现在编辑防火墙配置:vi /etc/sysconfig/iptables

启用50000端口。
执行/etc/init.d/iptables restart

分类: Linux 标签: ,