トップ 一覧 置換 検索 ヘルプ RSS ログイン

Android 起動時にActivityを起動するの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!Android 起動時にアプリを起動させる
http://d.hatena.ne.jp/itog/20100611/1276218418
!BOOT_COMPLETEDを受けるBroadCastReceiverをつくる

onReceive内でActivityを起動します。新たにアプリケーションを起動するので、NEW_TASKフラグが必要です。

 public class MyReceiver extends BroadcastReceiver {  
     @Override  
     public void onReceive(Context context, Intent intent) {  
         Intent i = new Intent(context, Main.class); 
         i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         context.startActivity(i);
     }   
 }

!ReceiverをManifestで定義する
BOOT_COMPLETEDを受けるためのフィルターと、パーミッションが必要です。

        <receiver android:name=".MyReceiver" 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>

!Manifest のサンプル
  <?xml version="1.0" encoding="utf-8"?>
  <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="test.test9" android:versionCode="1" android:versionName="1.0">
    <application android:label="@string/app_name">
      <activity android:name="app9" android:label="@string/app_name">
        <intent-filter>
          <action android:name="android.intent.action.MAIN" />
          <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
      </activity>
  
      <receiver android:name="test.test9.Receiver" 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>
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
  </manifest> 

{{category2 プログラミング言語,OS,Android}}
{{category2 プログラミング言語,Java,Android}}