从我的应用程序我试图打开另一个,使用此代码:
package com.copag.lanceappli;
import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.ComponentName;
import android.content.Intent;
public class LanceAppli extends Activity {
public void LanceAppli() {
try
{
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory("android.intent.category.LAUNCHER");
intent.setComponent(new ComponentName("test.test.test","test.test.test.MainActivity"));
startActivity(intent);
}
catch( ActivityNotFoundException e)
{
e.printStackTrace();
}
catch( Exception e)
{
e.printStackTrace();
}
}
public void main (String [] args)
{
LanceAppli();
}
}
发生的事情是应用程序崩溃了......没有错误消息。
这是我得到的:
任何想法?
答案 0 :(得分:2)
如果指定组件,则表示您使用显式意图。您不应在此案例类别中指定。试试吧:
public void LanceAppli()
{
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setComponent(new ComponentName("test.test.test","test.test.test.MainActivity"));
startActivity(intent);
}
如果您需要运行Launcher intent,那么最好使用以下代码:
Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.package.address");
startActivity(launchIntent);
答案 1 :(得分:0)
尝试类似这样的事情,如果你得到了一个堆栈跟踪就会发布。
try
{
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory("android.intent.category.LAUNCHER");
intent.setComponent(new ComponentName("test.test.test","test.test.test.MainActivity"));
startActivity(intent);
}
catch( ActivityNotFoundException e)
{
e.printStackTrace();
}
catch( Exception e)
{
e.printStackTrace();
}
答案 2 :(得分:0)
问题是我试图直接在构造函数上使用intent
,正如David所说。所以我把它改成了:
package com.copag.lanceappli;
import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
public class LanceAppli extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory("android.intent.category.LAUNCHER");
intent.setComponent(new ComponentName("test.test.test","test.test.test.MainActivity"));
startActivity(intent);
} catch( ActivityNotFoundException e) {
e.printStackTrace();
} catch( Exception e) {
e.printStackTrace();
}
}
}
因此,我将代码放入onCreate
,因为它应该是正常工作的!