您好,登錄后才能下訂單哦!
主要參考:http://life173.blog.51cto.com/2035365/543916/
屬于靜態(tài)注冊(cè)廣播接收器的內(nèi)容??梢詫?shí)現(xiàn)程序未啟動(dòng)的情況下接收廣播。
廣播接收器更多的是扮演一種打開程序其他組件的的角色,比如創(chuàng)建一條狀態(tài)欄通知,或者啟動(dòng)一個(gè)服務(wù)等。不要再onReceiver方法中過多的添加邏輯或者進(jìn)行任何的耗時(shí)操作。
注意權(quán)限。其中第一行代碼中例子中,需要開啟對(duì)應(yīng)app的開機(jī)啟動(dòng)權(quán)限
實(shí)現(xiàn)功能,開機(jī)后自動(dòng)啟動(dòng)FirstActivity,并且不用解鎖。才會(huì) 執(zhí)行
Toast.makeText(arg0, "Boot Complete",Toast.LENGTH_LONG).show();
貼出源碼:
主要是在配置文件中配置:
<receiver android:enabled="true" android:name=".BootUpReceiver" android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver>
及增加權(quán)限: <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 整個(gè)源碼: <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.activitytest" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="19" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".FirstActivity" android:label="this is my first Activity" > <intent-filter > <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <receiver android:enabled="true" android:name=".BootUpReceiver" android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver> </application> </manifest>
增加BootUpReceiver 類,F(xiàn)irstActivity就是你要開啟啟動(dòng)的活動(dòng);
package com.example.activitytest; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class BootUpReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub Intent i = new Intent(context,FirstActivity.class); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(i); } } 要啟動(dòng)的類:FirstActivity.java package com.example.activitytest; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class FirstActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); //requestWindowFeature(Window.FEATURE_NO_TITLE);//要使用Menu 注釋掉這句 getWindow().setFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD, WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);//開機(jī)不鎖屏 設(shè)置 setContentView(R.layout.first_layout); Button button1 = (Button)findViewById(R.id.button_1); button1.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v){ //Toast.makeText(FirstActivity.this,"you click button1", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse("http://www.baidu.com"));//setData,設(shè)置data標(biāo)簽 主要是tel,這個(gè)不能少 startActivity(intent); } }); } @Override public boolean onCreateOptionsMenu(Menu menu){ getMenuInflater().inflate(R.menu.main, menu); return true;//允許創(chuàng)建的菜單顯示出來 } @Override public boolean onOptionsItemSelected(MenuItem item){ switch(item.getItemId()){ case R.id.add_item: Toast.makeText(this, "you click add",Toast.LENGTH_SHORT).show(); break; case R.id.remove_item: Toast.makeText(this, "you click remove", Toast.LENGTH_SHORT).show(); break; default: break; } return true; } }
PS: 開啟啟動(dòng)這個(gè)app,需要解屏后稍等一會(huì),才能啟動(dòng);啟動(dòng)APP需要一定時(shí)間。
其實(shí)還可以在開機(jī)啟動(dòng)時(shí)設(shè)置不鎖屏。
getWindow().setFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD,
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);//開機(jī)不鎖屏 設(shè)置 放在這個(gè)前面。
setContentView(R.layout.first_layout);
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。