standard
0 The default mode, which will usually create a new instance of the activity when it is started, though this behavior may change with the introduction of other options such asIntent.FLAG_ACTIVITY_NEW_TASK
.
singleTop
1 If, when starting the activity, there is already an instance of the same activity class in the foreground that is interacting with the user, then re-use that instance. This existing instance will receive a call toActivity.onNewIntent()
with the new Intent that is being started.
singleTask
2 If, when starting the activity, there is already a task running that starts with this activity, then instead of starting a new instance the current task is brought to the front. The existing instance will receive a call toActivity.onNewIntent()
with the new Intent that is being started, and with theIntent.FLAG_ACTIVITY_BROUGHT_TO_FRONT
flag set. This is a superset of the singleTop mode, where if there is already an instance of the activity being started at the top of the stack, it will receive the Intent as described there (without the FLAG_ACTIVITY_BROUGHT_TO_FRONT flag set). See the Tasks and Back Stack document for more details about tasks.
singleInstance
3 Only allow one instance of this activity to ever be running. This activity gets a unique task with only itself running in it; if it is ever launched again with the same Intent, then that task will be brought forward and itsActivity.onNewIntent()
method called. If this activity tries to start a new activity, that new activity will be launched in a separate task. See the Tasks and Back Stack document for more details about tasks.
Widget其实可以很炫
http://407827531.iteye.com/blog/605736
很多开发者可能下载后编译的Android SDK是Linxu下使用的,如何编译Windows下的Android SDK呢? 这里Android123总结如下:
1. 首先必须在Linux下执行完源码下载,就是reop sync后,首先做一次完整编译,执行make,然后编译Linux下的SDK,执行make sdk即可,在这之前的操作,可以参考 Android源码编译相关问题汇总
2. 这时候在生成out目录下的内容考回到Windows下,如果你用虚拟机这一步只需要拖动操作即可,比较简单。
3. 下载Cygwin,Android开发网提示安装时记住选择Unix/binary而不是DOS/text国内的很多文章均写错了,不然无法正确编译,这在Android官方的howto_build_SDK.txt中写的很详细,具体为When installing Cygwin, set Default Text File Type to Unix/binary, not DOS/text. This is really important, otherwise you will get errors when trying to checkout code using git
4. 安装Cygwin需要下载的包有 autoconf, bison, curl, flex, gcc, g++, git, gnupg, make, mingw-zlib, python, zip, unzip,建议安装 diffutils, emacs, openssh, rsync, vim, wget ,不要安装readline。
5. 然后在Windows下将从Linux从预编译生成的zip一般名为android-sdk_eng.[你电脑的名称]_linux-x86.zip文件找出来,这是Linux下的SDK。
6. 按照howto_build_SDK.txt的步骤,其中最后一步为development/build/tools/make_windows_sdk.sh /path/to/macos/or/linux/sdk.zip ~/mysdk、
最后Android123提示大家,make_windows_sdk.sh是你在Linux下development/build/tools/才有的。附上 howto_build_SDK.txt 文件
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="tab_height">68px</dimen>
<dimen name="button_layout_width">240px</dimen>
<drawable name="keyWorldBG">#000</drawable>
<drawable name="keyWorldBG_Selected">#FFFF00</drawable>
</resources>
^./x{09}
Api Level 3:(SDK 1.5)
Xml代码
- android.bluetooth.a2dp.intent.action.SINK_STATE_CHANGED
- android.bluetooth.intent.action.BLUETOOTH_STATE_CHANGED
- android.bluetooth.intent.action.BOND_STATE_CHANGED_ACTION
- android.bluetooth.intent.action.DISCOVERY_COMPLETED
- android.bluetooth.intent.action.DISCOVERY_STARTED
- android.bluetooth.intent.action.HEADSET_ADUIO_STATE_CHANGED
- android.bluetooth.intent.action.HEADSET_STATE_CHANGED
- android.bluetooth.intent.action.NAME_CHANGED
- android.bluetooth.intent.action.PAIRING_CANCEL
- android.bluetooth.intent.action.PAIRING_REQUEST
- android.bluetooth.intent.action.REMOTE_DEVICE_CONNECTED
- android.bluetooth.intent.action.REMOTE_DEVICE_DISAPPEARED
- android.bluetooth.intent.action.REMOTE_DEVICE_DISAPPEARED
- android.bluetooth.intent.action.REMOTE_DEVICE_DISCONNECTED
- android.bluetooth.intent.action.REMOTE_DEVICE_DISCONNECT_REQUESTED
- android.bluetooth.intent.action.REMOTE_DEVICE_FOUND
- android.bluetooth.intent.action.REMOTE_NAME_FAILED
- android.bluetooth.intent.action.REMOTE_NAME_UPDATED
- android.bluetooth.intent.action.SCAN_MODE_CHANGED
- android.intent.action.AIRPLANE_MODE
- android.intent.action.BATTERY_CHANGED
- android.intent.action.BATTERY_LOW
- android.intent.action.BOOT_COMPLETED
- android.intent.action.CAMERA_BUTTON
- android.intent.action.CONFIGURATION_CHANGED
- android.intent.action.DATA_SMS_RECEIVED
- android.intent.action.DATE_CHANGED
- android.intent.action.DEVICE_STORAGE_LOW
- android.intent.action.DEVICE_STORAGE_OK
- android.intent.action.GTALK_CONNECTED
- android.intent.action.GTALK_DISCONNECTED
- android.intent.action.HEADSET_PLUG
- android.intent.action.INPUT_METHOD_CHANGED
- android.intent.action.MANAGE_PACKAGE_STORAGE
- android.intent.action.MEDIA_BAD_REMOVAL
- android.intent.action.MEDIA_BUTTON
- android.intent.action.MEDIA_CHECKING
- android.intent.action.MEDIA_EJECT
- android.intent.action.MEDIA_MOUNTED
- android.intent.action.MEDIA_NOFS
- android.intent.action.MEDIA_REMOVED
- android.intent.action.MEDIA_SCANNER_FINISHED
- android.intent.action.MEDIA_SCANNER_SCAN_FILE
- android.intent.action.MEDIA_SCANNER_STARTED
- android.intent.action.MEDIA_SHARED
- android.intent.action.MEDIA_UNMOUNTABLE
- android.intent.action.MEDIA_UNMOUNTED
- android.intent.action.NEW_OUTGOING_CALL
- android.intent.action.PACKAGE_ADDED
- android.intent.action.PACKAGE_CHANGED
- android.intent.action.PACKAGE_DATA_CLEARED
- android.intent.action.PACKAGE_INSTALL
- android.intent.action.PACKAGE_REMOVED
- android.intent.action.PACKAGE_REPLACED
- android.intent.action.PACKAGE_RESTARTED
- android.intent.action.PHONE_STATE
- android.intent.action.PROVIDER_CHANGED
- android.intent.action.REBOOT
- android.intent.action.SCREEN_OFF
- android.intent.action.SCREEN_ON
- android.intent.action.TIMEZONE_CHANGED
- android.intent.action.TIME_SET
- android.intent.action.TIME_TICK
- android.intent.action.UID_REMOVED
- android.intent.action.UMS_CONNECTED
- android.intent.action.UMS_DISCONNECTED
- android.intent.action.USER_PRESENT
- android.intent.action.WALLPAPER_CHANGED
- android.media.AUDIO_BECOMING_NOISY
- android.media.RINGER_MODE_CHANGED
- android.media.VIBRATE_SETTING_CHANGED
- android.net.conn.BACKGROUND_DATA_SETTING_CHANGED
- android.net.wifi.NETWORK_IDS_CHANGED
- android.net.wifi.RSSI_CHANGED
- android.net.wifi.SCAN_RESULTS
- android.net.wifi.STATE_CHANGE
- android.net.wifi.WIFI_STATE_CHANGED
- android.net.wifi.supplicant.CONNECTION_CHANGE
- android.net.wifi.supplicant.STATE_CHANGE
- android.provider.Telephony.SIM_FULL
- android.provider.Telephony.SMS_RECEIVED
- android.provider.Telephony.WAP_PUSH_RECEIVED
- com.google.gservices.intent.action.GSERVICES_CHANGED
Api Level 4增加的:(SDK 1.6)
Xml代码
- android.intent.action.ACTION_POWER_CONNECTED
- android.intent.action.ACTION_POWER_DISCONNECTED
- android.intent.action.ACTION_SHUTDOWN
- android.intent.action.BATTERY_OKAY
- android.speech.tts.TTS_QUEUE_PROCESSING_COMPLETED
- android.speech.tts.engine.TTS_DATA_INSTALLED
- com.google.gservices.intent.action.GSERVICES_OVERRIDE
Api Level 5(SDK 2.0)蓝牙部分全部修改,修改后的
Xml代码
- android.bluetooth.a2dp.action.SINK_STATE_CHANGED
- android.bluetooth.adapter.action.DISCOVERY_FINISHED
- android.bluetooth.adapter.action.DISCOVERY_STARTED
- android.bluetooth.adapter.action.LOCAL_NAME_CHANGED
- android.bluetooth.adapter.action.SCAN_MODE_CHANGED
- android.bluetooth.adapter.action.STATE_CHANGED
- android.bluetooth.device.action.ACL_CONNECTED
- android.bluetooth.device.action.ACL_DISCONNECTED
- android.bluetooth.device.action.ACL_DISCONNECT_REQUESTED
- android.bluetooth.device.action.BOND_STATE_CHANGED
- android.bluetooth.device.action.CLASS_CHANGED
- android.bluetooth.device.action.FOUND
- android.bluetooth.device.action.NAME_CHANGED
- android.bluetooth.devicepicker.action.DEVICE_SELECTED
- android.bluetooth.devicepicker.action.LAUNCH
- android.bluetooth.headset.action.AUDIO_STATE_CHANGED
- android.bluetooth.headset.action.STATE_CHANGED
然后增加的有
Xml代码
- android.intent.action.DOCK_EVENT
- android.provider.Telephony.SMS_REJECTED
Api Level 6(SDK 2.0.1)没有改变。
Api Level 7(SDK 2.1)增加的:
Xml代码
- android.intent.action.LOCALE_CHANGED
Api Level 8(SDK 2.2)增加的:
Xml代码
- android.app.action.ACTION_PASSWORD_CHANGED
- android.app.action.ACTION_PASSWORD_FAILED
- android.app.action.ACTION_PASSWORD_SUCCEEDED
- android.app.action.DEVICE_ADMIN_DISABLED
- android.app.action.DEVICE_ADMIN_DISABLE_REQUESTED
- android.app.action.DEVICE_ADMIN_ENABLED
- android.intent.action.EXTERNAL_APPLICATIONS_AVAILABLE
- android.intent.action.EXTERNAL_APPLICATIONS_UNAVAILABLE
- android.media.SCO_AUDIO_STATE_CHANGED
Timer 的使用:
private final Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case 0:
RelativeLayout tmp_home_back = (RelativeLayout) findViewById(R.id.home_back);
if (tmp_home_back.getVisibility() == View.VISIBLE)
tmp_home_back.setVisibility(View.INVISIBLE);
break;
}
}
};
TimerTask task = new TimerTask() {
public void run() {
Message message = new Message();
message.what = 0;
mHandler.sendMessage(message);
}
};
Timer timer = new Timer(true);
timer.schedule(task, 4000);