Questions tagged «android-intent»

有关实际,高级使用意图,意图额外和待决意图来启动活动,服务或通过BroadcastReceiver响应系统或应用程序事件/通知的问题。(有关基本知识,请参阅信息)

8
目的-如果活动正在运行,请将其置于最前面,否则(从通知中)开始一个新的活动
我的应用程序具有通知,这些通知很明显没有任何标志,每次都启动一个新活动,因此我在彼此之上运行多个相同的活动,这是错误的。 我要执行的操作是将通知待定意图中指定的活动(如果已在运行中)移到最前面,否则将其启动。 到目前为止,我拥有该通知的意图/待定意图是 private static PendingIntent prepareIntent(Context context) { Intent intent = new Intent(context, MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); return PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); } 奇怪的是,它有时起作用,有时却不起作用...我感觉我已经尝试了每种标志组合。

3
PendingIntent不发送Intent额外内容
我的MainActicity 开头RefreshService为Intent,其中有一个boolean额外的名称isNextWeek。 我的作品RefreshService会在用户点击时Notification启动MainActivity。 看起来像这样: Log.d("Refresh", "RefreshService got: isNextWeek: " + String.valueOf(isNextWeek)); Intent notificationIntent = new Intent(this, MainActivity.class); notificationIntent.putExtra(MainActivity.IS_NEXT_WEEK, isNextWeek); Log.d("Refresh", "RefreshService put in Intent: isNextWeek: " + String.valueOf(notificationIntent.getBooleanExtra(MainActivity.IS_NEXT_WEEK,false))); pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); builder = new NotificationCompat.Builder(this).setContentTitle("Title").setContentText("ContentText").setSmallIcon(R.drawable.ic_notification).setContentIntent(pendingIntent); notification = builder.build(); // Hide the notification after its selected notification.flags |= …

4
区别以及何时使用getApplication(),getApplicationContext(),getBaseContext()和someClass.this
我是新来的Android和我想明白之间的差别getApplication(),getApplicationContext()getBaseContext(),getContext()以及someClass.this特别是当使用这些方法在下面的代码行: 当我敬酒时,这些和在什么情况下使用它们有什么区别? Toast.makeText(LoginActivity.this, "LogIn successful", Toast.LENGTH_SHORT).show(); Toast.makeText(getApplication(), "LogIn successful", Toast.LENGTH_SHORT).show(); Toast.makeText(getApplicationContext(), "LogIn successful", Toast.LENGTH_SHORT).show(); Toast.makeText(getBaseContext(), "LogIn successful", Toast.LENGTH_SHORT).show(); 与意图相同: Intent intent = new Intent(getApplicationContext(), LoginActivity.class); Intent intent = new Intent(MenuPagina., LoginActivity.class); Intent intent = new Intent(getBaseContext(), LoginActivity.class); Intent intent = new Intent(getApplication(), LoginActivity.class);

2
具有多个过滤器或多个BroadcastReceiver的BroadcastReceiver?
我有一个Android活动,需要捕捉两个不同的广播。我当前的方法是BroadcastReceiver在活动中包含一个广播,并同时捕获两个广播: public class MyActivity extends Activity { private MyActivity.BroadcastListener mBroadcastListener; private boolean mIsActivityPaused = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.mylayout); // Create the broadcast listener and register the filters mIsActivityPaused = false; mBroadcastListener = new BroadcastListener(); IntentFilter filter = new IntentFilter(); filter.addAction(Params.INTENT_REFRESH); filter.addAction(Params.INTENT_UPDATE); registerReceiver(mBroadcastListener, filter); } @Override …

6
如何检查某个活动是否可以处理意图?
到目前为止,我已经有了这种方法,但是好像缺少了一些东西 例如,我有一个文件/sdcard/sound.3ga返回false(例如没有活动可以处理这种类型的文件),但是当我从文件管理器中打开它时,它可以与媒体播放器一起正常打开 我认为这个意图还不完整,我需要做更多的事情来确保只有没有活动可以处理这个意图时,handlerExists变量才会为false。 PackageManager pm = getPackageManager(); Intent intent = new Intent(android.content.Intent.ACTION_VIEW); String extension = android.webkit.MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(new File(uriString)).toString()); String mimetype = android.webkit.MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension); intent.setDataAndType(Uri.fromFile(new File(uriString)),mimetype); boolean handlerExists = intent.resolveActivity(pm) != null;


11
在Android屏幕上更改对话框的位置
我AlertDialog在Activity中做了一个简单的说明: View view = layoutInflater.inflate(R.layout.my_dialog, null); AlertDialog infoDialog = new AlertDialog.Builder(MyActivity.this) .setView(view) .create(); infoDialog.show(); 使用以上代码,对话框将显示在屏幕中心(大约)。 我想知道,如何自定义对话框位置以使其显示在顶部操作栏下方?(是否有改变重力或对话框的内容?)以及如何根据我的代码进行操作?

20
清除意图
我的Android应用被传递信息的意图(状态栏中的待定意图)调用。 当我按下主屏幕按钮并按住主屏幕按钮重新打开我的应用程序时,它将再次调用该意图,并且相同的附加功能仍然存在。 @Override public void onSaveInstanceState(Bundle savedInstanceState) { super.onSaveInstanceState(savedInstanceState); } @Override public void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); } 这是不按预期运行的代码 String imgUrl; Bundle extras = this.getIntent().getExtras(); if(extras != null){ imgUrl = extras.getString("imgUrl"); if( !imgUrl.equals(textView01.getText().toString()) ){ imageView.setImageDrawable( getImageFromUrl( imgUrl ) ); layout1.setVisibility(0); textView01.setText(imgUrl);//textview to hold the url } } 我的意图是: public void …

5
在PendingIntent上使用的“ requestCode”是什么?
背景: 我通过AlarmManager使用PendingIntent发出警报。 问题: 起初,我认为为了取消以前的警报,必须提供在启动警报之前使用的确切requestCode。 但是后来我发现我错了,正如取消API所述: 删除所有具有匹配意图的警报。任何警报,其意图与该警报相匹配(由filterEquals(Intent)定义)的任何类型的警报都将被取消。 查看“ filterEquals ”,文档说: 确定两个意图是否出于意图解析(过滤)的目的相同。也就是说,如果它们的动作,数据,类型,类和类别相同。这不会比较意图中包含的任何其他数据。 所以我不明白“ requestCode”是为了什么... 问题: “ requestCode”是用来做什么的? 如果使用相同的“ requestCode”创建多个警报该怎么办?他们会互相覆盖吗?

7
如何在由geo URI Intent启动的地图中显示标记?
我有一个应用程序,通过启动具有特定地理位置的Google地图,可以显示不同的位置(一次由用户输入选择)。 我目前正在使用它(当然具有真实的纬度和经度值): Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:<lat>,<long>?z=17")); startActivity(intent); 它完全是我想要的,除了它不显示指定点的任何指示器或标记。它仅在其位置居中。 是否有某种方法可以在不使用MapView的情况下获得标记或其他内容?

3
拦截来自浏览器的链接以打开我的Android应用
我希望能够在用户单击给定格式的URL时提示我的应用程序打开链接,而不是允许浏览器打开它。当用户在浏览器中的网页上,电子邮件客户端中或刚开发的应用程序中的WebView中时,可能就是这种情况。 例如,从手机中的任意位置单击YouTube链接,您将有机会打开YouTube应用。 如何为自己的应用程序实现这一目标?


13
Android在视图之间绘制一条水平线
我的“我的布局”如下所示: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/textView1" style="@style/behindMenuItemLabel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="Twitter Feeds" android:textStyle="bold" /> <ListView android:id="@+id/list" android:layout_width="350dp" android:layout_height="50dp" /> <TextView android:id="@+id/textView1" style="@style/behindMenuItemLabel1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="1dp" android:text="FaceBook Feeds" /> <ListView android:id="@+id/list1" android:layout_width="350dp" android:layout_height="50dp" /> </LinearLayout> 我的要求是在和之间绘制一条水平线TextViewListView 有人可以帮忙吗?

9
检查应用程序是否已安装-Android
我正在尝试从Google Play安装应用。我了解到,打开Goog​​le Play商店网址后,它会打开Goog​​le Play,当我按“后退”按钮时,活动将恢复。 Intent marketIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(appURL)); marketIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); startActivity(marketIntent); 当我回到活动中时,我尝试称其为 onResume()以检查是否已安装该应用程序,但收到错误消息: @Override protected void onResume() { super.onResume(); boolean installed = false; while (!installed) { installed = appInstalledOrNot(APPPACKAGE); if (installed) { Toast.makeText(this, "App installed", Toast.LENGTH_SHORT).show(); } } } private boolean appInstalledOrNot(String uri) { PackageManager pm = …


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.