Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:在主屏幕小部件的单独类中运行方法_Java_Android_Widget - Fatal编程技术网

Java Android:在主屏幕小部件的单独类中运行方法

Java Android:在主屏幕小部件的单独类中运行方法,java,android,widget,Java,Android,Widget,我在一个普通类文件(不是活动)中有一个从主活动运行的方法,我还想从主屏幕小部件运行它 只要应用程序在后台打开,小部件中的按钮就可以正常工作。如果我从最近的任务中关闭应用程序,按钮将停止工作 我想我也需要通过点击按钮启动应用程序,但我不希望它打开主活动,只需运行该方法。我该怎么做 以下是我的小部件代码: public class PanicWidget extends AppWidgetProvider { public static final String CLICK_PANIC =

我在一个普通类文件(不是活动)中有一个从主活动运行的方法,我还想从主屏幕小部件运行它

只要应用程序在后台打开,小部件中的按钮就可以正常工作。如果我从最近的任务中关闭应用程序,按钮将停止工作

我想我也需要通过点击按钮启动应用程序,但我不希望它打开主活动,只需运行该方法。我该怎么做

以下是我的小部件代码:

public class PanicWidget extends AppWidgetProvider {

    public static final String CLICK_PANIC = "PANIC";

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.panic_widget);
        Intent intent = new Intent(context, PanicWidget.class);
        intent.setAction(CLICK_PANIC);

        PendingIntent actionPendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);

        remoteViews.setOnClickPendingIntent(R.id.panicbutton, actionPendingIntent);

        appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
    }

    @Override
    public void onReceive(Context context, Intent intent){
        super.onReceive(context, intent);

        if (CLICK_PANIC.equals(intent.getAction())){
            Methods.countdown();
        }
    }
}

你能显示一下当前的代码来处理这个小部件的按钮吗?我已经编辑了我的文章来包含它,现在我更困惑了。我是在小部件的onReceive方法中设置操作,还是在布局文件中按钮的onClick函数中设置操作?或者两者都有?只是想澄清一下,当你点击按钮时会发生什么?Methods.countdown()是否运行?是的,但只有在后台打开我的应用程序时,它才会运行。如果我将其从最近的应用程序中删除,则会出现“不幸的是,应用程序已停止”错误。