編輯:關於Android編程
本案例知識是:後台執行定時任務。
Alarm機制:
一、創建LongRunningService類
package com.example.servicebestpractice;
import java.util.Date;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.os.SystemClock;
public class LongRunningService extends Service {
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
new Thread(new Runnable() {
@Override
public void run() {
// 打印日志模擬耗時操作。
System.out.println("服務啟動時間:" + new Date().toString());
}
}).start();
AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE);
int times = 1000 * 60;// 設置相隔多久啟動一次廣播,我設置為1分鐘啟動一次服務,去執行定時任務(雖然我寫的是打印一條日志,看起來很無趣)
long triggerAtime = SystemClock.elapsedRealtime() + times;// 設置觸發時間點
Intent i = new Intent(this, AlarmReceiver.class);// 服務啟動廣播的intent意圖
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, i, 0);// 封裝pendingIntent,啟動廣播接收者意圖
manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtime,
pendingIntent);// 設置精確定時時間,定時到了觸發,廣播啟動。
return super.onStartCommand(intent, flags, startId);
}
}
package com.example.servicebestpractice;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//服務類時間到啟動廣播這行這個方法
Intent intent2 = new Intent(context, LongRunningService.class);
context.startService(intent2);//啟動廣播做啟動服務操作,服務又一次啟動。
//由於服務不再前台,因此不需要設置addFlags();方法。因為服務不再借助任務棧去創建了。
}
}
package com.example.servicebestpractice;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//主活動要首先有一次啟動服務的操作
Intent intent3 = new Intent(this, LongRunningService.class);
startService(intent3);//啟動服務
}
}
每隔一分鐘,定時任務完成,啟動一次服務。

AndroidTestTool開發筆記
前言 這段時間在Testerhome上看了一些有關性能測試的帖子,看別人的東西,始終是別人的,只有自己寫一遍才能體會其中的細節,雖然說不要重復造輪子,但是這種基礎的東西
android中實現指針滑動的動態效果方法
復制代碼 代碼如下:<FrameLayout
UI組件之ImageView及其子類(二)ImageButton ,ZoomButton
從ImageButton這個字面意思上來看,它是一個圖片按鈕,那麼我們就可以使用它做一個我們想要的圖片按鈕了,但是我們在實際使用的過程當中,就會發現該按鈕的使用並沒有想像
學習整理 — 從安卓源碼上看Activity
安卓開發的四大組件是Activity, service, broadcast receiver, 和content provider。作為業余的開發者,可能不需要太深入理