編輯:關於Android編程
個例子實現的功能是:
1,安裝程序後看的一個Activity程序界面,裡面有個按鈕,點擊按鈕就會啟動一個Service服務,此時在設置程序管理裡面會看的有個Activity和一個Service服務運行
2,如果手機關機重啟,會觸發你的程序裡面的Service服務,當然,手機啟動後是看不到你的程序界面。好比手機裡面自帶的鬧鐘功能,手機重啟看不到鬧鐘設置界面
只是啟動服務,時間到了,鬧鐘就好響鈴提醒。
程序代碼是:
首先要有一個用於開機啟動的Activity,給你們的按鈕設置OnClickListener();
復制代碼 代碼如下:
public class MainActivity extends Activity {
private Button btnstarted = null;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnstarted = (Button)findViewById( R.id.btnstarted);
btnstarted.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,StartService.class);
startService(intent);
Toast.makeText(MainActivity.this, "服務啟動成功", Toast.LENGTH_LONG).show();
}};}
}
我們要編寫一個BroadcastReceiver用以捕獲ACTION_BOOT_COMPLETED這條廣播,並在捕獲之後啟動我們要啟動的服務StarServie.class
復制代碼 代碼如下:
public class BootCompletedReceiver extends BroadcastReceiver{
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){
Intent newIntent = new Intent(context,StartService.class);
context.startService(newIntent);
}
}
}
啟動服務Service代碼
復制代碼 代碼如下:
public class StartService extends Service{
//public static String PHONENO;
public class LocalBinder extends Binder{
StartThief getService(){
return StartService.this;
}
}
public IBinder onBind(Intent intent){
return mBinder;
}
private void registerIntentReceiver(){
//此處添加啟動服務要執行的操作代碼
}
public void onStart(Intent intent,int startId){
super.onStart(intent, startId);
}
@Override
public void onCreate() {
registerIntentReceiver();
}
}
用到的Main.xml,裡面只有一個Button ,id是btnstarted
復制代碼 代碼如下:
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/AbsoluteLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<Button android:layout_height="wrap_content"
android:id="@+id/btnstarted"
android:text="@string/started"
android:layout_y="118dip"
android:layout_width="wrap_content"
android:layout_x="56dip">
</Button>
</AbsoluteLayout>
在AndroidManifest.xml配置文件中注冊我們的BroadcastReceiver和服務Service
復制代碼 代碼如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.thief" android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon"
android:label="@string/app_name">
<activity android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
//注冊服務
<service android:name=".StartService"></service>
//為了獲取開機啟動這個動作,必須注冊加上android.intent.action.BOOT_COMPLETED
<receiver android:name=".BootCompletedReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED">
</action>
</intent-filter>
</receiver>
</application>
獲取開機啟動動作的權限permission
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>"
</manifest>
通過View提供的方法獲取高度方式有兩種:1, 當前顯示的view中直接獲取當前view高寬2, 通過Activity的getWindow().findViewById(
一、為什麼要使用異步任務類? Handler模式需要為每一個任務創建一個新的線程,任務完成後通過Handler對象向UI線程發送消息,完成界面的更新, 這種方式對整
在我們開發APP時不僅要在代碼實現上,做到對App的優化,而在我們的界面布局也有許多要優化的地方,如果布局寫的很low的話,系統加載布局的速度會十分的慢,使得用戶的體驗非
1.JDK是向下兼容的,JDK安裝高版本,eclipse、ADT、SDK安裝低本版本是可以的。2.eclipse的版本與ADT、SDK的版本必須是匹配的。無論是低版本的e