最近,看了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 { @Override public 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,搞定!