当任何播放歌曲的音乐播放器点击其通知时,它会向我们显示曲目的当前位置,如何?
我正在创建一个应用程序,在这里我按下一个按钮并将其可见性设置为GONE,并在其位置出现另一个按钮,如ON / OFF按钮。当我按下ON时,通知出现ON按钮GONE和OFF按钮VISIBLE,之后我正在最小化运行应用程序。现在当我点击通知时,它必须显示我的应用程序的最后一个视图,其中OFF是可见的,ON是GONE而不是它,它再次启动屏幕,其中ON VISIBLE和OFF为GONE。
我使用此代码,
String ns = Context.NOTIFICATION_SERVICE;
mNm = (NotificationManager) getSystemService(ns);
int icon = R.drawable.ic_launcher; // icon from resources
CharSequence tickerText = "my text"; // ticker-text
long when = System.currentTimeMillis(); // notification time
Context context = getApplicationContext(); // application Context
CharSequence contentTitle = "my title"; // message title
CharSequence contentText = "my message!"; // message text
Intent notificationIntent = new Intent(Intent.ACTION_MAIN);
notificationIntent.setClass(getApplicationContext(), DontTouchMyDroidActivity.class);
contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT | Notification.FLAG_AUTO_CANCEL);
// the next two lines initialize the Notification, using the configurations above
notification = new Notification(icon, tickerText, when);
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
答案 0 :(得分:0)
你非常接近。您需要可以在Intent
中传递数据。这有两个部分:
当您创建您的Intent
时,您需要为该意图添加额外数据。例如,您可以添加一个名为ON_VISIBLE的String
,并将其设置为“true”。以下是一些代码,用于为您创建的意图添加额外内容:
Intent notificationIntent = new Intent(this, DontTouchMyDroidActivity.class);
notificationIntent.putExtra("ON_VISIBLE", "true");
notificationIntent.putExtra("SOME_OTHER_DATA", "look at help for putExtra()");
这会将Bundle
的额外信息添加到Intent
(在Bundle
和Intent.putExtras()
上寻求帮助)
当您接收您的Intent
时,您需要从中提取该信息。以下是从Bundle
中取出Intent
的一些代码。然后,您可以使用这些值来确定是否要显示或隐藏按钮。
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// retrieve bundle extras passed into this intent
String onButtonVisible = "false";
Bundle extras = getIntent().getExtras();
if (extras != null)
{
onButtonVisible = extras.getString("ON_VISIBLE");
}
Boolean makeVisible = Boolean.valueOf(onButtonVisible);
if (makeVisible)
{
// make your ON button visible
}
}
如果您正在创建Activity
,则会调用此方法。
如果您的Activity
在后台还活着,那么您需要在Activity.onNewIntent(Intent intent)
/** Called if activity is being brought in from background by a new intent. */
@Override
protected void onNewIntent(Intent intent)
{
Bundle extras = intent().getExtras();
if (extras != null)
{
onButtonVisible = extras.getString("ON_VISIBLE");
}
// do something similar here
}
所以简短的回答是你在创建Intent
时添加了“额外内容”。这些“额外内容”会添加到Bundle
,然后您可以在Activity
启动时进行查询。而且,要知道有两种方法需要了解可以查询附加内容的位置。
关于Intent,extras,Bundle的一些谷歌搜索应该填写我遗漏的任何信息。