我可以找到一种方法从我的通知中向我的活动发送参数.
我有一个创建通知的服务.当用户点击通知时,我想用一些特殊参数打开我的主要活动.例如项目ID,因此我的活动可以加载并呈现特殊项目详细信息视图.更具体地说,我正在下载一个文件,当下载文件时,我希望通知有一个意图,当点击它时,它会以特殊模式打开我的活动.我试图使用putExtra我的意图,但似乎无法提取它,所以我认为我做错了.
我的服务中创建通知的代码:
// construct the Notification object.
final Notification notif = new Notification(R.drawable.icon, tickerText, System.currentTimeMillis());
final RemoteViews contentView = new RemoteViews(context.getPackageName(), R.layout.custom_notification_layout);
contentView.setImageViewResource(R.id.image, R.drawable.icon);
contentView.setTextViewText(R.id.text, tickerText);
contentView.setProgressBar(R.id.progress,100,0, false);
notif.contentView = contentView;
Intent notificationIntent = new Intent(context, Main.class);
notificationIntent.putExtra("item_id", "1001"); // <-- HERE I PUT THE EXTRA VALUE
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
notif.contentIntent = contentIntent;
nm.notify(id, notif);
Run Code Online (Sandbox Code Playgroud)
我的Activity中的代码尝试从通知中获取额外参数:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Bundle extras = getIntent().getExtras();
if(extras != null){
Log.i( "dd","Extra:" + …Run Code Online (Sandbox Code Playgroud) 当用户按下Send "Button 1"(向下滚动以查看应用程序的构造)时,将Notification创建一个新的RefreshService.如果用户按下此通知,则MainActivity实例启动并接收String具有Button 1超过该值的值Intent.
显示该值.
当用户现在按下时,Send "Button 2"将Notification创建一个新的RefreshService.如果用户按下此通知,则会MainActivity启动一个实例,并接收一个ALSO值超过该值的ALSO.String Button 1Intent
所以你可以猜测,通常应该有价值Button 2.
当用户按下的第一个按钮时,Send "Button 2"总会Button 2发送.
获得第二个按钮值的唯一解决方案是重新启动手机并先按下第二个按钮.即使强行关闭也行不通.
我知道我也可以用另一种方式更改UI.但是我需要在应用程序中使用这种方法,我需要用另一个重新启动'MainActivity',Intent因此方法应该是相同的.
一个Activity叫MainActivity
一个IntentService叫RefreshService
主要活动
public class MainActivity extends Activity implements View.OnClickListener {
public static final String RECEIVED = "received"; …Run Code Online (Sandbox Code Playgroud) android android-intent android-notifications intentservice android-activity
我有一个后台服务,我想在其中显示一个允许用户停止它的通知.
在android SDK文档中,它表示一个活动用于正常启动一个Activity.所以我想知道是否需要创建一个活动来停止服务,或者我可以在用户选择通知时直接停止服务,
那么打算如何回电服务来阻止它呢?
谢谢,