2

ステータス通知用にいくつかのコードを設定しましたが、Eclipseによるとコードに問題はありません。ただし、起動時にコードが実行されません。さて、それは通知をバイパスして、メインのアクティビティに直接進みます。コードが通知をスキップするのはなぜですか?

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には何もありません(奇妙な)

4

2 に答える 2

1

マニフェストで、<action android:name="android.intent.action.MAIN" />MainActivity のインテント フィルターから を削除し、それを NoteMe アクティビティのインテント フィルターに配置すると、起動時に他のアクティビティではなくそのアクティビティが実行されます。を呼び出す直前に、NoteMe アクティビティから MainActivity を起動するだけですfinish()

于 2012-07-18T17:37:49.647 に答える
0

onCreate()メソッドがありませんsetContentView()。これは の後に呼び出す必要がありますsuper.onCreate(savedInstanceState)。これにより、Android に関連付ける XML レイアウトが通知されますActivity

于 2012-07-18T17:09:27.377 に答える