如果我的意图为null,那么我想从intent发送数据然后简单地打开我的主要活动。这是我的试用,但它不适合我。
从一个活动发送
[Tue Jul 11 09:35:51 2017] [error] Hostname 192.168.178.54 provided via SNI and hostname foobar provided via HTTP are different
并获得时间
intent = new Intent(this, MainActivity.class);
intent.putExtra("androidkey",body);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
主要活动的创建方法
String uid;
Intent intent = getIntent();
uid = intent.getStringExtra("androidkey");
请告诉我解决方法 因为它崩溃了我的申请。
我在代码中想要做的是
if (uid.equals("hello")){
startActivity(new Intent(MainActivity.this, About.class));
}else if (uid.equals("")||uid.equals(null)){
startActivity(new Intent(MainActivity.this, MainActivity.class));
}
当我的应用程序处于前台并且通知到达其打开的完美页面时,但当应用程序不在前台时它会打开主要活动
所以请告诉我该怎么做才能做到这一点......?
答案 0 :(得分:0)
发送活动,
Intent newActivity1 = new Intent(ActivityA.this, ActivityB.class);
newActivity1.putExtra("androidkey", body);
startActivity(newActivity1);
接收活动,
String value = getIntent().getExtras().getString("androidkey");
或者,
Bundle extras = getIntent().getExtras();
String uid;
if (extras != null) {
uid= extras.getString("androidkey");
}
对于firebase尝试这样的事情,
public void onMessageReceived(String from, Bundle data) {
Bundle bundle = data.getBundle("notification");
if (bundle != null) {
String text = bundle.getString("text");
String body = bundle.getString("body");
}
}
,或者
public void onMessageReceived(RemoteMessage remoteMessage)
{
Log.e("dataMessage",remoteMessage.getData().toString());
try
{
Map<String, String> params = remoteMessage.getData();
JSONObject object = new JSONObject(params);
Log.e("JSON_OBJECT", object.toString());
}
}
答案 1 :(得分:0)
好的,因为评论可能只是毫无意义。
在你的某项活动中,不要决定去哪里,而是在 您创建意图的地方。
像这样:
Intent startIntent;
if(body == null || body.isEmpty()){
startIntent = new Intent(context, MainActivity.class);
}else{
startIntent = new Intent(context, About.class);
startIntent.putExtra("androidkey",body);
}
startIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(startIntent);