2012-01-22 261 views
3

我已經做了一個使用一個後臺服務的Android應用程序。它工作正常,但如果用戶重新啓動他的設備,我的應用程序將停止。我該如何解決這個問題,即如何在重新啓動設備後重新啓動應用程序?如何重新啓動設備後重新啓動應用程序?

+2

http://stackoverflow.com/a/6392009/798818 – Mob

回答

6

您可以按以下方式做到這一點:

註冊boot_completed時將啓動一個接收器和android系統中添加以下權限:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 

,並在清單文件中添加以下行:

<receiver android:name="com.test.check.MyReceiver"> 
      <intent-filter> 
       <action android:name="android.intent.action.BOOT_COMPLETED"></action> 
      </intent-filter> 
     </receiver> 

       <service android:name=".MyService"> 
        <intent-filter> 
         <action android:name="com.test.check.MyService" /> 
        </intent-filter> 
       </service> 

現在在onReceive()方法MyReceiver啓動服務:

public class MyReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context arg0, Intent arg1) { 
     // TODO Auto-generated method stub 


     Toast.makeText(arg0, "boot completed",Toast.LENGTH_LONG).show(); 

     Intent serviceIntent = new Intent("com.test.check.MyService"); 
     arg0.startService(serviceIntent); 


    } 
} 

現在在服務的onCreate方法啓動你想使用它的包名的應用程序:

Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("package.name"); 
      startActivity(LaunchIntent); 

這將滿足您的要求。

相關問題