2011-12-11 51 views
10

我想在通知欄中放置一個通知,當按下按鈕時會啓動我的應用程序。雖然我沒有這樣做的問題,我的用戶也希望通知在重新啓動後出現。他們有一個來自另一個供應商的應用程序。重啓後的android通知

我能找到的所有東西都表明應用程序必須運行才能顯示通知。有任何想法嗎?

+0

我知道eSniff的答案會起作用。但我談論的另一個應用程序沒有運行服務,應用程序本身沒有運行,但通知仍然存在,並點擊它啓動應用程序。 – miannelle2

+0

你解決了這個問題嗎?我也想知道同樣的方式 – bman

回答

10

您需要添加一個在重啓後啓動服務的接收器。

在您的清單寄存器啓動完成

<service android:name="com.meCorp.service.MeCorpServiceClass"/> 
... 
<receiver android:name="com.meCorp.receiver.MyRebootReceiver"> 
<intent-filter> 
<action android:name="android.intent.action.BOOT_COMPLETED"/> 
</intent-filter> 
</receiver> 
... 
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 

在你的啓動接收器,啓動服務。

public class MyRebootReceiver extends BroadcastReceiver { 

     @Override 
     public void onReceive(Context context, Intent intent) { 
      Intent serviceIntent = new Intent(context, MeCorpServiceClass.class); 
      serviceIntent.putExtra("caller", "RebootReceiver"); 
      context.startService(serviceIntent); 
     } 
} 

這是服務類在後臺運行的示例。

public class MeCorpServiceClass extends IntentService{ 

     @Override 
     protected void onHandleIntent(Intent intent){ 
      String intentType = intent.getExtras().getString("caller"); 
      if(intentType == null) return; 
      if(intentType.Equals("RebootReceiver")) 
        //Do reboot stuff 
      //handle other types of callers, like a notification. 
     } 
    } 

或者只是使用像Urban AirShip這樣的第三方,它可以爲您處理所有這些事情。

+1

你必須添加權限,才能收到boot_complete –

+0

@android_hungry謝謝,我剛剛做到了。 – eSniff

+0

welcome .. nice 2 c確認 –