2012-07-18 67 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关联。