如何在显示对话框时跟踪用户交互?

时间:2014-09-22 03:30:51

标签: android timeout user-interaction

我在我的应用程序中使用Activity.onUserInteraction(),它会触发任何交互(例如,在某处点击屏幕),即使它不会导致操作。适合屏幕超时等。

public class MainActivity extends Activity {
    ...
    public void onUserInteraction()
    {
        idleTimer = 15;
    }
    ...
}

然而,当我显示一个对话框(通过AlertDialog.Builder)时,上述方法不再被调用。我知道它不再是我的活动,但是当对话框处于活动状态时,如何实现类似的功能呢?我想跟踪任何活动,而不仅仅是在给定长度的用户不活动后手动管理(降低)亮度的活动。

如果您需要有关如何显示对话框的详细信息:

    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);

    View view = getLayoutInflater().inflate(R.layout.number_picker, null);
    final NumberPicker np = (NumberPicker)view.findViewById(R.id.numberPicker);
    if (np == null)
        return;

    alertDialogBuilder
            .setMessage(title)
            .setView(view)
            .setCancelable(false)
            .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    MainActivity.onNumberPickerClose(code, np.getValue());
                    dialog.cancel();
                }
            })
            .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    dialog.cancel();
                }
            });

    AlertDialog alertDialog = alertDialogBuilder.create();

    MainActivity.SetupNumberPicker(np, from, to, defaultValue);

    alertDialog.show();

0 个答案:

没有答案