当用户打开应用程序时,如果我在没有打开活动的情况下按下通知,我怎么能处理特定的方法?
Intent intent = new Intent(this, MainActivity.class);
intent.putExtra("frame", 1);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(contentIntent);
答案 0 :(得分:3)
你问如何从意图中读取你的额外内容?您应该在活动中实现onNewIntent()
并在那里处理传入的Intent。如果你有更多处理意图内容的代码,那么最好将它作为单独的方法:
@Override
public void onCreate(Bundle savedState)
{
super.onCreate(savedState);
dealWithIntentData(getIntent());
}
@Override
protected void onNewIntent(Intent intent)
{
super.onNewIntent(intent);
dealWithIntentData(intent);
}
protected void dealWithIntentData(Intent intent) {
...
}
答案 1 :(得分:0)
您可以根据需要创建不同的PendingIntent
。在您的代码段中,您通过调用
PendingIntent.getActivity(this, 0, intent,PendingIntent.FLAG_UPDATE_CURRENT);
您可以通过致电开始服务
PendingIntent.getService()
,或通过致电PendingIntent.getBroadcast()
更具体地说,如果您不想依赖任何活动,请尝试发送广播(使用getBroadcast)并在Broadcast的onReceive()上执行任何逻辑
更多信息@ http://developer.android.com/reference/android/app/PendingIntent.html
答案 2 :(得分:0)
我不完全理解你的问题,但也许你想制作一个广播接收器&处理一些动作吗?
您可以使用PendingIntent.getBroadcast
方法。
因此,使用广播,您可以从接收器开始活动,或者,如果接收器在内部活动,则处理某些事情
答案 3 :(得分:0)
Intent intent = new Intent(this, MainActivity.class);
intent.putExtra("frame", 1);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
int frame = intent.getIntExtra("frame", 0);
// TODO your code...
}