開始我嘗試從通知消防意圖:意圖不通知
CharSequence tickerText = "ServiceTicker"; // context.getString(R.string.service_ticker_registered_text);
long when = System.currentTimeMillis();
Builder nb = new NotificationCompat.Builder(context);
nb.setTicker(tickerText);
nb.setWhen(when);
Intent notificationIntent = new Intent(context, AccountRegistrationChanged.class);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
RegistrationNotification contentView = new RegistrationNotification(context.getPackageName());
contentView.clearRegistrations();
if(!Compatibility.isCompatible(9)) {
contentView.setTextsColor(notificationPrimaryTextColor);
}
contentView.addAccountInfos(context, activeAccountsInfos);
nb.setOngoing(true);
nb.setOnlyAlertOnce(true);
nb.setContentIntent(contentIntent);
nb.setContent(contentView);
Notification notification = nb.build();
notification.flags |= Notification.FLAG_NO_CLEAR;
// We have to re-write content view because getNotification setLatestEventInfo implicitly
notification.contentView = contentView;
Log.e(THIS_FILE, "==============notification:" + notification + " contentView:" + contentView + " notificationIntent:" + notificationIntent + " contentIntent" + contentIntent + " context:" + context + " nb:" + nb);
if (showNumbers) {
// This only affects android 2.3 and lower
notification.number = activeAccountsInfos.size();
}
startForegroundCompat(REGISTER_NOTIF_ID, notification);
private void startForegroundCompat(int id, Notification notification) {
// If we have the new startForeground API, then use it.
if (mStartForeground != null) {
Log.e(THIS_FILE, "mStartForeground");
mStartForegroundArgs[0] = Integer.valueOf(id);
mStartForegroundArgs[1] = notification;
invokeMethod(mStartForeground, mStartForegroundArgs);
return;
}
Log.e(THIS_FILE, "invokeMethod");
// Fall back on the old API.
mSetForegroundArgs[0] = Boolean.TRUE;
invokeMethod(mSetForeground, mSetForegroundArgs);
notificationManager.notify(id, notification);
}
終於我在日誌中,哪裏是所有意圖和觀點正確創建:
10-04 22:38: 49.344:E/Notifications(7415):
==============通知(振動= null,聲音= null,默認= 0x0)contentView:com.csipsimple .widgets.RegistrationNotification @ 44eb3ff8 notificationIntent:Inten噸{FLG = 0x10000000的 CMP = com.callsfreecalls.android/.AccountRegistrationChanged} contentIntentPendingIntent {44eb3fe8:[email protected]} 上下文:[email protected] NB:android.support.v4 .app.NotificationCompat $生成器@ 44eb3e30 10-04 22:38:49.344:E /通知(7415):mStartForeground
10-04 22:38:49.344:E /通知(7415):mStartForeground
但是什麼也沒有發生,這個代碼:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.e(THIS_FILE, "AccountRegistrationChanged");
setContentView(R.layout.activity_account_registration_changed);
}
在活動/ AccountRegistrationChanged沒有開始......
這裏是體現了活動:
<activity
android:name=".AccountRegistrationChanged"
android:label="@string/title_activity_account_registration_changed" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
什麼建議嗎?也許我不得不開火更多來推動通知開始意圖? 目前我只需要激活從另一個活動的一些元素,但與處理程序(如下所述)代碼導致未知的錯誤而不調試任何解釋:
SipProfileState ps = activeAccountsInfos.get(i);
Message msg = new Message();
Bundle b = new Bundle();
b.putString("regState",String.valueOf(ps.getStatusCode()));
msg.setData(b);
PhonePadActivity.getUareceiverhandler().sendMessage(msg);
@mah你的意思是? – user170317
@mah對於所有回答的問題,我確認併爲正確答案添加點。也許問題是我有很多未解答的問題?我現在知道爲什麼。 – user170317
我明白你的意思了;我刪除了我之前的評論。 – mah