モバイルがオンになっているときにAndroidでアプリケーションを開始する方法は?

StackOverflow https://stackoverflow.com/questions/8848166

質問

haiバックグラウンドサービスを使用してアプリケーションを使用しています。明確に実行されています。モバイルがオフになったら、サービスがオフになっています。オフ?出来ますか?誰もがコードで説明します

アップデート

public class loginForm extends Activity 
{
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView (R.layout.login);
receiver = new ConnectionReceiver();
 registerReceiver(receiver,new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
}
 }

private class ConnectionReceiver extends BroadcastReceiver{

        private Timer mTimer;
        private TimerTask mTimerTask;

        @Override
        public void onReceive(Context context, Intent intent) {
                NetworkInfo info = intent.getParcelableExtra         (ConnectivityManager.EXTRA_NETWORK_INFO);

                if(null != info)
                {
                        String state = getNetworkStateString(info.getState());
                        if(state.equals("Connected")){
                            mTimer = new Timer();
                            mTimerTask = new TimerTask() {
                                @Override
                                public void run() {
                                    loginForm.this.runOnUiThread(new Runnable() {

                                        @Override
                                        public void run() {

                                            //Toast.makeText(getBaseContext(), "Disenabled provider " + provider,
                                                    ///Toast.LENGTH_SHORT).show();  
                                            try{
                                            insertAllGpsInformation();
                                            }
                                            catch(Exception e)
                                         {
                                            Toast.makeText(getBaseContext(), "Your Net Connected or Not Login to Net"+"", Toast.LENGTH_LONG).show();
                                            Log.e("Upload Picture Error:",e.getMessage());
                                         }
                                        }


                                    });

                               }
                            };
                            mTimer.scheduleAtFixedRate(mTimerTask,180000,180000);
                        }


                        }
        }   
                }

}
役に立ちましたか?

解決

に登録します ACTION_BOOT_COMPLETED (詳細については、こちらをご覧ください)。ブートでサービスを開始します。

他のヒント

BroadCastReceiverを登録し、boot_completedの意図を探してください。

ここにいくつかの詳細があります: http://androidgps.blogspot.com/2008/09/starting-android-service-at-boot-time.html

私はあなたの質問を正しく理解しましたか?

ブートが完了したアクションの意図を持ってブロードキャストレシーバーを作成します。

詳細については、次のリンクを参照してください。

  1. http://blog.gregfiumara.com/?p=82
  2. http://marakana.com/forums/android/examples/60.html

使用できます

public class BootReceiver extends BroadcastReceiver
{
   @Override
   public void onReceive(Context context, Intent intent)
   {
      // TODO Auto-generated method stub
      Log.i("BootReceiver :: Start Booting..");

      Intent i = new Intent(context, StartService.class);    // Start your service class
           i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
           context.startActivity(i);    
   }
   }

AndroidManifest.xml ASのBroadCastRecieverを使用してください

<receiver android:name=".receiver.BootReceiver">
<intent-filter> 
<action android:name="android.intent.action.BOOT_COMPLETED" /> 
</intent-filter> 
</receiver>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top