0

我正在尝试用我的项目中的另一个按钮以编程方式调用 Home 按钮。应用程序编译正常,但是当我点击应该调用 Home 的按钮时,我收到以下错误:

尝试在空对象引用上调用虚拟方法“void android.content.Context.startActivity(android.content.Intent)”

这是我的代码(只是必需品):

import android.app.Activity;
import android.content.Intent; 
import android.content.Context;

public class ClassName extends ReactContextBaseJavaModule {
  private Context context;

  @ReactMethod
  public void minApp() {
    Intent startMain = new Intent(Intent.ACTION_MAIN);
    startMain.addCategory(Intent.CATEGORY_HOME);
    startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(startMain);
  }
}

我究竟做错了什么?

解决方案:

由于我的应用程序使用本机反应,java 文件中桥接方法中的代码应如下所示:

import android.content.Intent; 
import android.content.Context;

public class ClassName extends ReactContextBaseJavaModule {

  @ReactMethod
  public void minApp() {
    Context context = getReactApplicationContext();
    Intent startMain = new Intent(Intent.ACTION_MAIN);
    startMain.addCategory(Intent.CATEGORY_HOME);
    startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(startMain);
  }
}

使用它,我们可以Home button在任何我们想要的地方分配功能;)

4

2 回答 2

2
public void openLauncher(Context context) {
    Intent startMain = new Intent(Intent.ACTION_MAIN);
    startMain.addCategory(Intent.CATEGORY_HOME);
    startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(startMain);
}

您可以使用此功能打开启动器。

于 2018-09-25T12:03:45.993 回答
1

好像你还没有初始化context。确保在调用之前启动它minApp()

于 2018-09-25T11:59:14.073 回答