Android 无法使用intent将firebase云消息传递令牌从一个类传递到另一个类
我无法使用intent将fmctoken.java类中生成的刷新令牌传递给mainActivity.java类。请有人帮我解决这个问题 我的mainactivity.java类是: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
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
关联。这样,用户可以选择将您的应用程序带到前台。当令牌刷新时,您为什么要启动活动?