Android 根据从Firebase收到的命令重新启动活动
我正试图根据从Firebase收到的命令重新启动我的主要活动。我设法让它工作,但在MainActivity类中有一个TimerTask,为了从Firebase类调用Stop函数,我必须创建MainActivity类的一个新实例。这还将创建计时器的新实例。该命令将停止计时器(新启动的计时器),但旧计时器将在后台继续运行。如何在不创建新实例的情况下调用main活动中的stop函数。它是一个非静态函数,所以我不能从静态上下文调用它 这是我的代码snipet,如果有用的话Android 根据从Firebase收到的命令重新启动活动,android,android-activity,timertask,non-static,Android,Android Activity,Timertask,Non Static,我正试图根据从Firebase收到的命令重新启动我的主要活动。我设法让它工作,但在MainActivity类中有一个TimerTask,为了从Firebase类调用Stop函数,我必须创建MainActivity类的一个新实例。这还将创建计时器的新实例。该命令将停止计时器(新启动的计时器),但旧计时器将在后台继续运行。如何在不创建新实例的情况下调用main活动中的stop函数。它是一个非静态函数,所以我不能从静态上下文调用它 这是我的代码snipet,如果有用的话 if (remoteM
if (remoteMessage.getNotification() != null) {
String msg = remoteMessage.getNotification().getBody();
Log.v("test", "FB msg is: " + msg);
if (msg.equals(COMMAND)) {
Intent i = new Intent(MyFirebaseMessagingService.this, DashboardActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(i);
dashboardActivity.stopTimer();
// SharedPrefManager.getInstance(getApplicationContext()).storeTimer("false");
} else {
Log.v("test", "unknown");
}
}
最后,我想从Firebase发送一个命令,强制我的MainActivity完全重新启动。使用
new dashboardActivity().stopTimer();
如果出现错误,则使用
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
new dashboardActivity().stopTimer();
}
});
使用
如果出现错误,则使用
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
new dashboardActivity().stopTimer();
}
});
如果要重新启动活动,请使用以下代码:
Intent intent = getIntent();
finish();
startActivity(intent);
如果要重新启动活动,请使用以下代码:
Intent intent = getIntent();
finish();
startActivity(intent);
我使用了广播接收机,它工作了。按照这个例子我使用了BroadcastReceiver,它工作正常。下面的示例将创建仪表板活动的新实例。这将创建一个新计时器,旧计时器将在后台继续工作。这将创建仪表板活动的新实例。这将创建一个新计时器,旧计时器将在后台继续工作。您不能使用finish();来自另一个班级。我的停止函数也在服务类中。不能使用finish();来自另一个班级。此外,我的停止函数在服务类中。