2012-07-18 88 views
2

我有一些代碼設置爲狀態通知,沒有什麼是錯誤的代碼根據日食。但是,當我啓動它時,代碼不會運行。那麼它繞過通知並直接進入主要活動。爲什麼我的代碼跳過通知?Android notificiations not displayed

import android.app.Activity; 
import android.app.Notification; 
import android.app.NotificationManager; 
import android.app.PendingIntent; 
import android.content.Intent; 
import android.os.Bundle; 

public class NoteMe extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    int notifID = getIntent().getExtras().getInt("NotifID"); 
    Intent i = new Intent("com.example.something.MainActivity"); 

    PendingIntent detailsIntent = PendingIntent.getActivity(this, 0, i, 0); 

    NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
    Notification notif = new Notification(R.drawable.ic_launcher, 
      "STOP LOOK LISTEN!", System.currentTimeMillis()); 

    CharSequence message = "This is your alert, courtesy of the AlarmManager"; 
    notif.setLatestEventInfo(this, message, message, detailsIntent); 
    notif.vibrate = new long[] { 100, 250, 100, 500 }; 
    nm.notify(notifID, notif); 
    finish(); 
} 

} 

其次清單:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.something" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="7" 
    android:targetSdkVersion="16" /> 

<uses-permission android:name="android.permission.VIBRATE" /> 
<uses-permission android:name="android.permission.CALL_PHONE" /> 
<uses-permission android:name="android.permission.CAMERA" /> 

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/title_activity_main" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
      <activity android:name=".NoteMe" > 
     <intent-filter> 
      <action android:name="com.example.something.NoteMe" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 
</application> 

</manifest> 

而且logcat的! - logcat中沒有任何東西(奇怪)

+0

您能否成功發送主要活動的通知?如在,這只是沒有在這個活動中工作? – matt5784 2012-07-18 17:09:36

+0

如果可以的話,我可以發送「Toast」信息。我還沒有嘗試發送大通知。 – linuxrox 2012-07-18 17:12:21

+0

您是否在此活動的創建中敬酒以確保它完全被調用? ? – matt5784 2012-07-18 17:25:37

回答

1

在清單中,如果您從MainActivity的intent過濾器中刪除<action android:name="android.intent.action.MAIN" />並將其放入NoteMe活動的intent過濾器中,那麼該活動應該在啓動時運行,而不是在另一個運行時運行。您只需要在您致電finish()之前從您的NoteMe活動啓動MainActivity。

+0

根據logcat(剛剛開始工作Oo)拋出空指針異常 – linuxrox 2012-07-18 17:42:34

+0

NoteMe活動在運行時拋出NullPointerException異常嗎? – matt5784 2012-07-18 18:25:49

+0

是的,NoteMe活動拋出異常。通知從不出現,主活動本身閃爍,然後立即崩潰。 – linuxrox 2012-07-18 18:37:23

0

您的onCreate()方法丟失setContentView()。這應該在super.onCreate(savedInstanceState)之後調用。這告訴Android您想要將哪個XML佈局與Activity關聯。