小编PX *_*per的帖子

通知单击:活动已打开

我有一个带有通知的应用程序,如果我点击它们就会打开某个活动.我想要的是,如果我点击通知并且活动已经打开,它就不会再次启动,而是会被带到前面.

我以为我可以用国旗做FLAG_ACTIVITY_BROUGHT_TO_FRONTFLAG_ACTIVITY_REORDER_TO_FRONT,但它一直再次打开它,所以我有两次活动.

这是我的代码:

event_notification = new Notification(R.drawable.icon,
            mContext.getString(R.string.event_notif_message), System.currentTimeMillis()); 
Intent notificationIntent = new Intent(mContext, EventListActivity.class);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
sendNotification(event_notification, notificationIntent, mContext.getString(R.string.event_notif_title),
                body, Utils.PA_NOTIFICATIONS_ID);
Run Code Online (Sandbox Code Playgroud)

我可以使用标志管理它,还是应该在SharedPreferences中存储变量以检查它是否已打开?

谢谢!

notifications android android-activity

154
推荐指数
4
解决办法
7万
查看次数

在Android上处理蓝牙耳机点击(ACTION_VOICE_COMMAND和ACTION_WEB_SEARCH)

我正在开发一个Android应用程序,我希望它与headset按钮点击进行交互.我正在使用Android KitKat 4.4Nexus 5中测试它.

我首先尝试使用简单的耳机(不是无线耳机).收到的按钮事件是KEYCODE_HEADSETHOOK(79).我创建了一个MEDIA_BUTTON receiver来处理它的点击:

<receiver android:name="com.example.mytest.SearchActivity$MediaButtonIntentReceiver">
    <intent-filter>
        <intent-filter android:priority="1000000000">
            <action android:name="android.intent.action.MEDIA_BUTTON" />
        </intent-filter>
    </intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)

这是持有接收者的活动:

public class SearchActivity extends Activity {

    private AudioManager mAudioManager;
    private ComponentName mAudioReceiver;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.search);

        mAudioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
        mAudioReceiver =  new ComponentName(getPackageName(),
            MediaButtonIntentReceiver.class.getName());
    }

    @Override
    protected void onResume() {
        super.onResume();

        mAudioManager.registerMediaButtonEventReceiver(mAudioReceiver);
    }

    @Override
    protected void onPause() {
        super.onPause();

        mAudioManager.unregisterMediaButtonEventReceiver(mAudioReceiver);
    }

    public static class MediaButtonIntentReceiver …
Run Code Online (Sandbox Code Playgroud)

events android bluetooth headset

17
推荐指数
1
解决办法
1万
查看次数

具有自定义视图的Android AlertDialog:获取输入数据

我有一个带有AlertDialog的应用程序,它显示了一个EditText.我按照Android开发人员指南来做,但我找不到如何获取用户输入的数据.

自定义布局只有一个EditText:

<EditText
    android:id="@+id/license_value"
    android:inputType="text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="@string/license" />
Run Code Online (Sandbox Code Playgroud)

我正在使用DialogFragment来创建对话框.要在用户单击"确定"按钮时获取数据,我正在使用界面.

public class EditLicenseDialogFragment extends DialogFragment {

    public interface EditLicenseDialogListener {
        public void onDialogPositiveClick(DialogFragment dialog, String value);
    }

    private EditLicenseDialogListener mListener;

    // Override the Fragment.onAttach() method to instantiate the NoticeDialogListener
    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        // Verify that the host activity implements the callback interface
        try {
            // Instantiate the NoticeDialogListener so we can send events to the host
            mListener = (EditLicenseDialogListener) activity;
        } catch (ClassCastException e) {
            // …
Run Code Online (Sandbox Code Playgroud)

android android-dialogfragment

11
推荐指数
1
解决办法
1万
查看次数

Android:具有自定义视图和圆角的AlertDialog

我正在尝试AlertDialog使用自定义view(没有标题或页脚)和圆角构建.我已经看过很多关于如何做到这一点的帖子,我尝试了很多东西,但我不能像我想的那样构建它.

这是我的目标:

在此输入图像描述

drawable为被dialog调用的dialog_background.xml 创建了一个:

<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <solid
        android:color="#FFAAAAAA" />

    <stroke
        android:width="2dp"
        android:color="#FF000000" />

    <corners android:radius="20dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)

我添加了一个style使用它:

<style name="MyDialog" parent="@android:style/Theme.Dialog">
    <item name="android:background">@drawable/dialog_background</item>
</style>
Run Code Online (Sandbox Code Playgroud)

layout我的自定义的view是要去有两个按钮.现在我告诉你一个空的LinearLayout简单.这是playdialog.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    style="@style/MyDialog"
     >

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

为了构建Dialog我使用a DialogFragment.这是它的onCreateDialog功能:

public Dialog onCreateDialog(Bundle savedInstanceState) {
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    LayoutInflater inflater = getActivity().getLayoutInflater();

    builder.setView(inflater.inflate(R.layout.playdialog, null));
    return builder.create();
}
Run Code Online (Sandbox Code Playgroud)

好吧,如果我使用这样的代码我得到这个:

在此输入图像描述

我试图将dialog …

android android-alertdialog

10
推荐指数
1
解决办法
2万
查看次数

带有DialogFragment的Android AlertDialog:即使单击"确定",也不要关闭对话框

我有一个自定义布局的AlertDialog(只是一个EditText),我想在单击确定按钮时验证数据.如果验证失败,我不想关闭对话框.

我正在使用对话框的默认按钮(正面和负面).如果我使用"setPositiveButton("",new DialogInterface.OnClickListener()..."对话框总是关闭的.我看过几个帖子,他们说onClick Listener应该被覆盖,但我不能让它工作这是我发现的代码:

Button theButton = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
theButton.setOnClickListener(new CustomListener(dialog));
Run Code Online (Sandbox Code Playgroud)

因为它说它应该在显示对话框之后完成,所以我把这个代码放在我的活动中,而不是在我的DialogFragment中,但是如果我使用mDialogFragment.getDialog()它总是返回null.

这是我的Dialog片段的一部分:

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    // Use the Builder class for convenient dialog construction
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

    builder.setTitle(R.string.new);

    LayoutInflater inflater = getActivity().getLayoutInflater();
    dialogView = inflater.inflate(R.layout.edit_license, null);

    builder.setView(dialogView)

    // Add action buttons
    .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int id) {

        }
    })
    .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            MyDialogFragment.this.getDialog().cancel();
        }
    }); 

    return builder.create();

}
Run Code Online (Sandbox Code Playgroud)

在我的活动中,我执行以下操作:

DialogFragment dialog …
Run Code Online (Sandbox Code Playgroud)

android android-alertdialog android-dialogfragment

6
推荐指数
2
解决办法
8420
查看次数

Ionic 3:以"prod"模式构建:找不到模块"."

我们有一个大的Ionic,我们正在尝试应用buildproduction模式,因为它几乎准备好了.我们发现的第一个问题是JavaScript编译时我们遇到了" 堆内存不足"的错误,但我们通过给节点提供更多内存来修复它:

"ionic:build": "node --max-old-space-size=16384 ./node_modules/@ionic/app-scripts/bin/ionic-app-scripts.js build",

npm run ionic:build -- --prod
Run Code Online (Sandbox Code Playgroud)

使用此命令,应用程序成功构建,但如果我打开它,我会收到以下错误:

Uncaught Error: Cannot find module “.”
at vendor.js:1
at vendor.js:1
at Object. (vendor.js:1)
at e (vendor.js:1)
at Object. (main.js:1)
at e (vendor.js:1)
at window.webpackJsonp (vendor.js:1)
at main.js:1
Run Code Online (Sandbox Code Playgroud)

我搜索了一下,发现它可能是由它造成的require,但我们没有使用它.知道可能发生的事情或我们可以做些什么来调试问题?有没有办法在不缩小JS的情况下使用"--prod"?

这是我的环境:

cli packages: (/usr/local/lib/node_modules)

@ionic/cli-utils  : 1.19.2
ionic (Ionic CLI) : 3.20.0
global packages:

cordova (Cordova CLI) : 6.5.0 
Gulp CLI              : [09:06:54] CLI version 3.9.1 [09:06:54] Local version …
Run Code Online (Sandbox Code Playgroud)

javascript ionic-framework ionic3 angular

6
推荐指数
2
解决办法
3108
查看次数

FileObserver - > onEvent(event,path):path为NULL

我想知道文件写完的时间,并且我正在尝试使用FileObserver.我是这样做的:

FileObserver observer = new FileObserver(imageUri.getPath()) {
        @Override
        public void onEvent(int event, String path) {
            if(event == FileObserver.CLOSE_WRITE)
                Log.d(TAG, "FILE: "+path);
        }
};
observer.startWatching();
Run Code Online (Sandbox Code Playgroud)

imageUri是有效的Uri.文件关闭后,我得到以下日志条目:

FILE: null
Run Code Online (Sandbox Code Playgroud)

为什么null?用户可能会写入多个文件,因此我需要知道哪个文件正在触发事件.

谢谢!

android fileobserver

5
推荐指数
1
解决办法
3370
查看次数

Android:如果用户清除应用程序数据,则删除帐户

我有一个用于与我的服务器数据的Android应用程序.昨天我注意到,如果我点击设置 - >应用程序 - >我的应用程序,应用程序数据将被删除,但用户帐户不会被删除.这导致我的服务器出现一致性问题,因为突然重新启动用户的数据而没有收到重启消息.AccountssynchronizeClear Data

有没有办法删除Account用户点击的时间Clear Data?或者至少捕获事件以便能够向我的服务器发送消息.

谢谢!

account android clear

5
推荐指数
1
解决办法
1702
查看次数

带有圆角的Android AlertDialog:角落下方的矩形

我想要一个Dialog有圆角的东西,但是当Dialog看到它下面有一个矩形,它在角落下面看到,像这样:

在此输入图像描述

dialog使用自定义构建DialogFragment:

public class MyDialogFragment extends DialogFragment{
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    LayoutInflater inflater = getActivity().getLayoutInflater();

    builder.setView(inflater.inflate(R.layout.playdialog, null));
    return builder.create();
}
}
Run Code Online (Sandbox Code Playgroud)

对话框布局(playdialog)具有以下drawable作为背景:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >

    <solid
        android:color="#AAAAAAAA" />

    <stroke
        android:width="2dp"
        android:color="#FF000000" />

    <corners android:radius="20dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)

正如我所说,我将此drawable设置为背景:

android:background="@drawable/dialog_background"
Run Code Online (Sandbox Code Playgroud)

我不希望看到那个矩形.我该怎么做??

这篇文章中,用户遇到了同样的问题.我试图使用适合他的解决方案,但它对我不起作用.我修改了DialogFragment这样的:

public Dialog onCreateDialog(Bundle savedInstanceState) {
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    LayoutInflater inflater = getActivity().getLayoutInflater();

    builder.setView(inflater.inflate(R.layout.playdialog, null));
    Dialog …
Run Code Online (Sandbox Code Playgroud)

android custom-view android-alertdialog

4
推荐指数
2
解决办法
8455
查看次数

Android:共享CSV文件

我的应用程序可以生成我想要共享的CSV文件.我正在使用MIME类型text/comma_separated_values/csv,但是当我发送Intent选择器时没有显示,我猜我的设备不知道如何处理该文件.我应该使用哪种类型?

这是我的代码:

    Uri csv = lh.createDailyCSV();

    if(csv == null){
         Toast.makeText(this, getString(R.string.error_creating_csv), Toast.LENGTH_LONG).show();
    }
    else{
        Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
        sharingIntent.setType("text/comma_separated_values/csv");
        sharingIntent.setData(csv); 
        startActivity(Intent.createChooser(sharingIntent, getResources().getText(R.string.send_to)));
    }   
Run Code Online (Sandbox Code Playgroud)

我在我的清单中宣布:

    <intent-filter>
        <action android:name="android.intent.action.SEND" />

        <category android:name="android.intent.category.DEFAULT" />

        <data android:mimeType="text/comma_separated_values/csv" />
    </intent-filter>
Run Code Online (Sandbox Code Playgroud)

我得到了例外

03-12 12:19:23.430: E/ActivityThread(24011): Activity com.android.internal.app.ChooserActivity has leaked IntentReceiver com.android.internal.app.ResolverActivity$1@412fc920 that was originally registered here. Are you missing a call to unregisterReceiver()?
Run Code Online (Sandbox Code Playgroud)

我已经读过这个例子,当选择器中没有或只有一个选项时会发生异常.

[编辑]

我改变了将数据附加到Intent的方式.我使用的不是sharingIntent.setData(csv):

sharingIntent.putExtra(Intent.EXTRA_STREAM, csv);
Run Code Online (Sandbox Code Playgroud)

现在选择器工作正常,但如果我尝试通过电子邮件发送文件,我收到一个错误:文件无法显示.

[/编辑]

csv android share

4
推荐指数
1
解决办法
6664
查看次数