2
我需要我的應用程序在重新啓動設備後開始運行(在後臺)。下面是我想出現在爲止(後服用大量從這裏幫助...)如何在重新啓動後通過服務啓動活動
這是我BootUpReceiver利用廣播接收器的:
public class BootUpReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent serviceIntent = new Intent(context, RebootService.class);
serviceIntent.putExtra("caller", "RebootReceiver");
context.startService(serviceIntent);
}
}
這是服務類:
public class RebootService extends IntentService{
public RebootService(String name) {
super(name);
// TODO Auto-generated constructor stub
}
protected void onHandleIntent(Intent intent) {
Intent i = new Intent(getBaseContext(), MainActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
String intentType = intent.getExtras().getString("caller");
if(intentType == null)
return;
if(intentType.equals("RebootReceiver"))
getApplication().startActivity(i);
}
}
這是我的Android清單:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<receiver
android:name=".BootUpReceiver"
android:enabled="true"
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>
<service android:name=".RebootService"/>
</application>
的問題是,當我安裝這在我的手機上,並重新啓動,該應用程序崩潰:它說,「傳輸已停止工作」。按OK按鈕後,當我檢查應用程序信息時,該應用程序正在運行。
我是新來的android,我不知道發生了什麼。我應該添加更多的權限?
請幫忙。 TIA
感謝。讓我試試看,並找回你..我找到了構造函數腥 – blueren
更新:它的作品。現在,當我重新啓動時,活動啓動..但我真正想要的是應用程序在後臺啓動:| – blueren
這是您的設計問題,而不是代碼問題。你正在開始一個活動,這將在前臺出現。如果你想在後臺使用它,那麼你必須在你的服務中做任何你正在做的事情,而不是開始一個活動。 – Ralgha