所以我将代码更改为调用广播接收器,而不是调用主要活动
Intent notificationIntent = new Intent(context, com.plugin.statusNotificationForGCM.statusNotificationForGCMReceiver.class);
notificationIntent.putExtra(NOTIF_RESPOND, runThis);
notificationIntent.setAction(Intent.ACTION_VIEW);
notificationIntent = notificationIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
//contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
contentIntent = PendingIntent.getBroadcast(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
Run Code Online (Sandbox Code Playgroud)
问题是我在接收器中添加了它,但认为它没有运行。单击通知后看不到标签并登录控制台
public class statusNotificationForGCMReceiver extends BroadcastReceiver {
private static final String TAG = "statusNOTIFICATIONReceiver";
@Override
public final void onReceive(Context context, Intent intent) {
Log.v(TAG,"ASDFSJD FASDF ASDPFJA SDFPAUS DFPAS DFASDF");
}
}
Run Code Online (Sandbox Code Playgroud)
我有什么想念的吗?我是否必须在清单文件中添加一些内容?
谢谢
您可能需要在清单中包含此内容:
合适的意图在其定义 <intent-filter>
<activity android:name="BroadcastIntents" android:label="@string/app_name"/>
<receiver android:name="statusNotificationForGCMReceiver" android:label="@string/app_name">
<intent-filter>
<action android:name="android.test.BROADCAST" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
附加物:
通过意图过滤器,您可以告诉活动它可以/不能响应的活动(被意图调用时)。
public class InternalMessageReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context ctx, Intent intent) {
String msg = intent.getStringExtra("message");
Toast.makeText(ctx,msg,Toast.LENGTH_SHORT).show();
}
}
Run Code Online (Sandbox Code Playgroud)
您可以在“活动”中调用它,例如单击一个按钮,如下所示:
private static final String ACTION = "android.test.BROADCAST";
public void onClick(View v) {
/* Broadcast intent */
Intent intent = new Intent(ACTION);
intent.putExtra("message", msg);
main_activity.sendBroadcast(intent);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4553 次 |
| 最近记录: |