Intent无法在android中接收数据

时间:2017-07-03 11:10:27

标签: android firebase android-intent android-activity

如果我的意图为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));
        }

当我的应用程序处于前台并且通知到达其打开的完美页面时,但当应用程序不在前台时它会打开主要活动

所以请告诉我该怎么做才能做到这一点......?

2 个答案:

答案 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);