Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 无法使用intent将firebase云消息传递令牌从一个类传递到另一个类_Android_Firebase_Android Intent_Firebase Cloud Messaging - Fatal编程技术网

Android 无法使用intent将firebase云消息传递令牌从一个类传递到另一个类

Android 无法使用intent将firebase云消息传递令牌从一个类传递到另一个类,android,firebase,android-intent,firebase-cloud-messaging,Android,Firebase,Android Intent,Firebase Cloud Messaging,我无法使用intent将fmctoken.java类中生成的刷新令牌传递给mainActivity.java类。请有人帮我解决这个问题 我的mainactivity.java类是: package com.example.htcm.firebase_fmc_token; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import

我无法使用intent将fmctoken.java类中生成的刷新令牌传递给mainActivity.java类。请有人帮我解决这个问题

我的mainactivity.java类是:

package com.example.htcm.firebase_fmc_token;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

public class MainActivity extends AppCompatActivity {
    public TextView txtvu;
    public DatabaseReference mdatabase;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        txtvu=(TextView)findViewById(R.id.textvu1);
        //String token=getIntent().getExtras().getString("firetoken");
        String value = getIntent().getStringExtra("tokengenerated");
        Log.d("token", "my tiken: " + value);
        txtvu.setText(value);

    }
}
package com.example.htcm.firebase_fmc_token;

import android.content.Intent;
import android.util.Log;
import android.content.Intent;
import com.google.firebase.iid.FirebaseInstanceId;
import com.google.firebase.iid.FirebaseInstanceIdService;

public class fmctoken extends FirebaseInstanceIdService {
    public void onTokenRefresh() {
        String refreshedToken = FirebaseInstanceId.getInstance().getToken();
        Log.d("myfirebaseId", "Refreshed token: " + refreshedToken);
        Intent intent = new Intent(getApplicationContext(), MainActivity.class);
        intent.putExtra("tokengenerated", refreshedToken);
        startActivity(intent);
    }
}
我的fmctoken.java类是:

package com.example.htcm.firebase_fmc_token;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

public class MainActivity extends AppCompatActivity {
    public TextView txtvu;
    public DatabaseReference mdatabase;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        txtvu=(TextView)findViewById(R.id.textvu1);
        //String token=getIntent().getExtras().getString("firetoken");
        String value = getIntent().getStringExtra("tokengenerated");
        Log.d("token", "my tiken: " + value);
        txtvu.setText(value);

    }
}
package com.example.htcm.firebase_fmc_token;

import android.content.Intent;
import android.util.Log;
import android.content.Intent;
import com.google.firebase.iid.FirebaseInstanceId;
import com.google.firebase.iid.FirebaseInstanceIdService;

public class fmctoken extends FirebaseInstanceIdService {
    public void onTokenRefresh() {
        String refreshedToken = FirebaseInstanceId.getInstance().getToken();
        Log.d("myfirebaseId", "Refreshed token: " + refreshedToken);
        Intent intent = new Intent(getApplicationContext(), MainActivity.class);
        intent.putExtra("tokengenerated", refreshedToken);
        startActivity(intent);
    }
}

使用此代码对您有效

package com.example.htcm.firebase_fmc_token;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

public class MainActivity extends AppCompatActivity {
    public TextView txtvu;
    public DatabaseReference mdatabase;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        txtvu=(TextView)findViewById(R.id.textvu1);
        Intent intent = getIntent();
        //String token=intent.getExtras().getString("firetoken");
        String value = intent.getStringExtra("tokengenerated");
        Log.d("token", "my tiken: " + value);
        txtvu.setText(value);

    }
}

你永远不应该从
服务开始
活动
,因为这会迫使后台应用进入前台-我想这就是你的代码不起作用的原因。您可以显示一个通知,该通知与启动
活动的
pendingent
关联。这样,用户可以选择将您的应用程序带到前台。

当令牌刷新时,您为什么要启动活动?