Android 通知意图标志
在我的应用程序中有两个活动,活动A中有一个按钮,活动B中有带通知内容和主选项菜单的音频播放器Android 通知意图标志,android,android-intent,Android,Android Intent,在我的应用程序中有两个活动,活动A中有一个按钮,活动B中有带通知内容和主选项菜单的音频播放器 启动活动A。单击按钮->启动活动B 在活动B中–使用通知启动播放器 单击设备后退按钮 活动B销毁并单击设备后退按钮 活动A销毁 单击通知->转到活动B 在活动B中,单击主选项菜单->开始活动A 单击按钮-不工作 有什么想法吗 Intent i = new Intent(getBaseContext(),ActivityB); i.putExtra("NotifID", NOTIFICATION_
Intent i = new Intent(getBaseContext(),ActivityB);
i.putExtra("NotifID", NOTIFICATION_ID);
i.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
pi = PendingIntent.getActivity(getBaseContext() , 0, i,PendingIntent.FLAG_UPDATE_CURRENT);
contentView = new RemoteViews(getPackageName(), R.layout.my_notification);
bitmap = ((BitmapDrawable)drawable).getBitmap();
contentView.setImageViewBitmap(R.id.imageNotify, bitmap);
contentView.setTextViewText(R.id.titleNotify, text);
contentView.setTextViewText(R.id.textSong, singer);
mNotification.contentView = contentView;
mNotification.contentIntent = pi;
mNotification.tickerText = text;
mNotification.icon = R.drawable.icon;
mNotification.flags |= Notification.FLAG_ONGOING_EVENT;
mNotificationManager.notify(NOTIFICATION_ID, mNotification);
活动A,
playButton = ((Button)findViewById(R.id.nowplaying));
playButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(getBaseContext(),ActivityB.class);
intent.putExtra("isFromList", false);
startActivity(intent);
}
});
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.home:
Intent myIntent = new Intent(this, ActivityA.class);
startActivity(myIntent);
break;
在城市B,
playButton = ((Button)findViewById(R.id.nowplaying));
playButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(getBaseContext(),ActivityB.class);
intent.putExtra("isFromList", false);
startActivity(intent);
}
});
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.home:
Intent myIntent = new Intent(this, ActivityA.class);
startActivity(myIntent);
break;
以及上述通知
清单
<activity
android:name="com.android.ActivityA"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.android.ActivityB"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="portrait" >
</activity>
我假设当用户从ActivityB选择“主菜单选项”启动ActivityA时,您希望返回ActivityA。在这种情况下,您需要在启动ActivityA后,在选项ItemSelected()中添加对
finish()
的调用
我已要求您将清单条目发布到ActivityA和ActivityB,这可能会进一步说明问题。定义“不工作”。日志中有错误吗?当用户选择“主选项菜单”时,ActivityB如何启动ActivityA?否,logcat中没有错误。单击时,不启动活动B。我已在活动B中创建了选项菜单。请发布当用户在活动B中选择主选项菜单时执行的代码。更新我的帖子,请检查。同时发布清单中列出的activityA和activityBLooked的清单条目。我看不出为什么ActivityA不应该运行。您是否可以检查logcat(不是错误,而是指示活动是否已启动的所有消息),并发布相关的logcat条目。