最近,看了api中例子程式定時自啟動,整理了一下共分享給大家;
首先,建立AutouStartActivity類
package com.start.app;import android.app.Activity;import android.app.AlarmManager;import android.app.PendingIntent;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class AutouStartActivity extends Activity { final String MYACTION = "android.intent.action.STARTMYAP"; AlarmManager am = null; Intent intent = null; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btn = (Button)this.findViewById(R.id.start); btn.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { AutouStartActivity.this.finish(); } }); am=(AlarmManager)this.getSystemService(Context.ALARM_SERVICE); intent=new Intent(MYACTION); } @Override protected void onDestroy() { PendingIntent pi = PendingIntent.getBroadcast(this, 0, intent, 1); am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+5000, pi);//15秒鐘以後啟動 super.onDestroy(); }}
然後建立接收器
package com.start.app;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;public class AppReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent in) {if(in!=null){if(in.getAction().equals("android.intent.action.STARTMYAP")){Intent i=new Intent(context, AutouStartActivity.class);i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(i);}}}}
最後,別忘了註冊接收器;
<receiver android:name=".AppReceiver"> <intent-filter> <action android:name="android.intent.action.STARTMYAP"/> </intent-filter> </receiver>
ok,搞定!