如何使用从服务传递的意图启动 Activity
How to launch Activity using intent which passed from Service
我有一个 Service
,它在字符串变量中获取一个 class 名称,并使用以下代码传递给 sharedpreferences:
settings.edit().putString("class", activityClass).commit();
`
该服务然后启动我的密码提示 activity,它需要读取字符串并启动存储在其中的 activity。
try {
SharedPreferences settings = getApplicationContext().getSharedPreferences("data", Context.MODE_PRIVATE);
String c = settings.getString("class", "null");
Intent newIntent= new Intent(passprompt.this, Class.forName(c));
newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(newIntent);
}
catch (ClassNotFoundException e) {
}
然而,预期的 activity 并未按预期启动
你可以试试这个,
如果此 activity 在您的应用中
获取完全限定的 Activity class 名称并将其放入 intent extra 中,如下所示,
Intent newIntent= new Intent(Passprompt.this, Class.forName("your activity class name")));
newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(newIntent);
如果这是 activity 在另一个应用程序中
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setComponent(new ComponentName("packagename", "packagename.launh_activity_name"));
startActivity(intent);
我有一个 Service
,它在字符串变量中获取一个 class 名称,并使用以下代码传递给 sharedpreferences:
settings.edit().putString("class", activityClass).commit();
`
该服务然后启动我的密码提示 activity,它需要读取字符串并启动存储在其中的 activity。
try {
SharedPreferences settings = getApplicationContext().getSharedPreferences("data", Context.MODE_PRIVATE);
String c = settings.getString("class", "null");
Intent newIntent= new Intent(passprompt.this, Class.forName(c));
newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(newIntent);
}
catch (ClassNotFoundException e) {
}
然而,预期的 activity 并未按预期启动
你可以试试这个,
如果此 activity 在您的应用中 获取完全限定的 Activity class 名称并将其放入 intent extra 中,如下所示,
Intent newIntent= new Intent(Passprompt.this, Class.forName("your activity class name"))); newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(newIntent);
如果这是 activity 在另一个应用程序中
Intent intent = new Intent(Intent.ACTION_MAIN); intent.setComponent(new ComponentName("packagename", "packagename.launh_activity_name")); startActivity(intent);