首先,我對android和Java都很陌生。來自其他類的方法的調用狀態欄通知
我有兩個類,我的main.class和Note.class。
我在我的main.class的Note.class中調用通知方法,當我按下按鈕時。
的問題是與這條線從Note.class:
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
當方法被調用它強行關閉。我相信問題是PendingIntent.getActivity(this,0,notificationIntent,0)中的「this」,但我不確定要將其更改爲。
通知代碼在主類中正常工作。
我將非常感謝任何指導。
編輯: 主類:http://pastebin.com/05Yx0a48
Note.class:
package com.adamblanchard.remindme.com.adamblanchard;
import com.adamblanchard.remindme.R;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
public class Note extends Activity {
public CharSequence note = "not changed";
int HELLO_ID = 1;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setTitle("Remind Me!");
}
//Notification Method
public void callNotification() {
// TODO Auto-generated method stub
String ns = Context.NOTIFICATION_SERVICE;
final NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);
int icon = R.drawable.launcher;
CharSequence tickerText = "Remind Me!";
long when = System.currentTimeMillis();
final Notification notification = new Notification(icon, tickerText, when);
notification.flags |= Notification.FLAG_AUTO_CANCEL;
final Context context = getApplicationContext();
CharSequence contentTitle = "Remind Me!";
CharSequence contentText = note;
Intent notificationIntent = new Intent(context, AndroidNotifications.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
mNotificationManager.notify(HELLO_ID, notification);
HELLO_ID++;
}
}
調試輸出:
螺紋[< 1>主](暫停(例外IllegalStateException異常) )
注意(Activity).getSystemService(String)行:3536
Note.callNotification()線:37
remindme $ 1 $ 1.onClick(DialogInterface,INT)線:72 AlertDialog(AlertController $ ButtonHandler).handleMessage(消息)線:159 AlertController $ ButtonHandler(處理程序)。調用Message(Message)行:99
Looper.loop()line:123 ActivityThread.main(String [])line:3647
Method.invokeNative(Object,Object [],Class,Class [],Class,int ,布爾值)行:不可用[本地方法]
Method.invoke(Object,Object ...)line:507
ZygoteInit $ MethodAndArgsCaller.run()line:839
ZygoteInit.main(字符串[])線:597 NativeStart.main(字符串[])行:不可用[本機方法]
這是調試輸出我得到的,再加上強制關閉彈出裝置。
EDIT2:
清單XML:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.adamblanchard.remindme"
android:versionCode="3"
android:versionName="0.7">
<application android:label="@string/app_name" android:icon="@drawable/ic_launcher72">
<activity android:name=".com.adamblanchard.remindme" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Note">
<intent-filter>
<action android:name="Note" />
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="1"></uses-sdk>
</manifest>
堆棧跟蹤(難道這些你是什麼意思?):
Thread [<1> main] (Suspended (exception ActivityNotFoundException))
Instrumentation.checkStartActivityResult(int, Object) line: 1404
Instrumentation.execStartActivity(Context, IBinder, IBinder, Activity, Intent, int) line: 1378
remindme(Activity).startActivityForResult(Intent, int) line: 2827
remindme(Activity).startActivity(Intent) line: 2933
remindme$1$1.onClick(DialogInterface, int) line: 82
AlertDialog(AlertController$ButtonHandler).handleMessage(Message) line: 159
AlertController$ButtonHandler(Handler).dispatchMessage(Message) line: 99
Looper.loop() line: 123
ActivityThread.main(String[]) line: 3647
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]
Method.invoke(Object, Object...) line: 507
ZygoteInit$MethodAndArgsCaller.run() line: 839
ZygoteInit.main(String[]) line: 597
NativeStart.main(String[]) line: not available [native method]
或:
01-15 00:56:18.167: WARN/dalvikvm(14887): threadid=1: thread exiting with uncaught exception (group=0x40015560)
01-15 00:56:18.217: ERROR/AndroidRuntime(14887): FATAL EXCEPTION: main
01-15 00:56:18.217: ERROR/AndroidRuntime(14887): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.adamblanchard.remindme/com.adamblanchard.remindme.com.adamblanchard.Note}; have you declared this activity in your AndroidManifest.xml?
01-15 00:56:18.217: ERROR/AndroidRuntime(14887): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1404)
01-15 00:56:18.217: ERROR/AndroidRuntime(14887): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1378)
01-15 00:56:18.217: ERROR/AndroidRuntime(14887): at android.app.Activity.startActivityForResult(Activity.java:2827)
01-15 00:56:18.217: ERROR/AndroidRuntime(14887): at android.app.Activity.startActivity(Activity.java:2933)
01-15 00:56:18.217: ERROR/AndroidRuntime(14887): at com.adamblanchard.remindme.com.adamblanchard.remindme$1$1.onClick(remindme.java:82)
01-15 00:56:18.217: ERROR/AndroidRuntime(14887): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:159)
01-15 00:56:18.217: ERROR/AndroidRuntime(14887): at android.os.Handler.dispatchMessage(Handler.java:99)
01-15 00:56:18.217: ERROR/AndroidRuntime(14887): at android.os.Looper.loop(Looper.java:123)
01-15 00:56:18.217: ERROR/AndroidRuntime(14887): at android.app.ActivityThread.main(ActivityThread.java:3647)
01-15 00:56:18.217: ERROR/AndroidRuntime(14887): at java.lang.reflect.Method.invokeNative(Native Method)
01-15 00:56:18.217: ERROR/AndroidRuntime(14887): at java.lang.reflect.Method.invoke(Method.java:507)
01-15 00:56:18.217: ERROR/AndroidRuntime(14887): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
01-15 00:56:18.217: ERROR/AndroidRuntime(14887): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-15 00:56:18.217: ERROR/AndroidRuntime(14887): at dalvik.system.NativeStart.main(Native Method)
01-15 00:56:18.237: WARN/ActivityManager(156): Force finishing activity com.adamblanchard.remindme/.com.adamblanchard.remindme
01-15 00:56:18.747: WARN/ActivityManager(156): Activity pause timeout for HistoryRecord{40a15868 com.adamblanchard.remindme/.com.adamblanchard.remindme}
01-15 00:56:18.777: DEBUG/Launcher(10740): -- loadPreferences()
01-15 00:56:19.177: INFO/ActivityManager(156): No longer want com.facebook.katana (pid 14395): hidden #16
01-15 00:56:29.177: WARN/ActivityManager(156): Activity destroy timeout for HistoryRecord{40a15868 com.adamblanchard.remindme/.com.adamblanchard.remindme}
你能告訴我們您注意類的代碼?另外,請告訴我們您收到的錯誤消息的詳細信息。 – elevine 2011-01-13 22:16:42
「主」和「注」都是活動嗎?發佈更多詳情將幫助我們回答您的問題。 – WorkerThread 2011-01-13 22:29:23