小编Evi*_*arS的帖子

Android如何使用给定格式创建自定义URL方案myapp:// http://

我已经研究了大多数自定义URL方案问答,但我没有找到可能的答案.

我想通过点击浏览器中的某个URL(移动设备上的任何一个)来启动我的应用程序,问题是我的给定URL无法修改,因为它也提供IOS应用程序,它看起来像这样:

"myapp:// http://www.name.com/path/path2/ "

我不知道如何处理"myapp:// http://"并构建一个正确的意图过滤器,我尝试的一切都行不通.任何帮助将不胜感激,如果我错过了相关的答案,请不要道歉.

这是我到目前为止所尝试的:

      <activity
        android:name="com.myapp.test.SplashScreen"
        android:exported="true"
        android:label="@string/app_name"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

        <!-- Test for URL scheme -->
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

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

            <data
                android:host="www.name.com"
                android:path="/path/path2/"
                android:scheme="http" />
            <data
                android:host="www.name.com"
                android:path="/path/path2/"
                android:scheme="https" />

            <data android:scheme="myapp" />
        </intent-filter>
        <!-- End Test for URL scheme -->
    </activity>
Run Code Online (Sandbox Code Playgroud)

注意:我尝试使用/不使用导出:true

url android url-scheme intentfilter android-manifest

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

Android - 从资产\ PDF显示访问文件

我试图检索存储在assets目录中的文件的引用到名为的文件myfile.pdf.我试过这样做:

File file = new File("android_assest/myfile.pdf);
Log.d("myTag", "" + file.isFile());
Run Code Online (Sandbox Code Playgroud)

不知何故,false当目录中myfile.pdf存在do 时,我得到了assets.我验证使用它getAssets().list("")Log.d()返回的数组中的每个元素.

更多其中,我试图获取PDF文件的参考,然后使用已安装在设备上的任何PDF查看器,以便查看PDF.

我想自从上一个问题(检索对文件的引用)返回false后,下一个剪切代码失败:

Intent i = new Intent(Intent.ACTION_VIEW,
    Uri.parse("file:///android_asset/myfile.pdf"));
startActivity(i);
Run Code Online (Sandbox Code Playgroud)

任何人都有一个线索,为什么我无法检索文件的引用?为什么我不能使用已安装的PDF查看器来显示PDF(在检索PDF文件的引用后)?

谢谢.

java android assets android-intent

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

当从背景返回应用程序时,有时在单例内保存的静态数据为空

我使用经典的单例模式来存储我在初始活动(splash活动)中从webServices获取的数据,然后在整个应用程序中访问它.

我有一个启动活动导致MainActivity,它是带有片段的滑动菜单活动,初始片段是一个包含支持地图片段的片段.

我的问题是存储在单例内的数据,有时当应用程序进入后台(按下主页并移动到另一个应用程序)然后转到最近的应用程序并选择我的应用程序时,单例的数据为空,这会导致我的应用程序崩溃.

我花了几个小时检查我的单例是否按原样编写,如果我自己没有使它变为null,静态数据变为null的可能原因是什么.

在我搜索之后,我发现了一个非常简单的解释,解释了静态数据何时/为什么变为空--Android静态对象生命周期 @Samuh回答我引用

"因此,如果您创建一个Android应用程序并初始化一个静态变量,它将保留在JVM中,直到发生以下情况之一:1.该类被卸载2. JVM关闭3.进程死亡"

关于#1和#2 - 我真的不知道这些何时发生.

关于#3 - 这非常好,好像用户将从"最近的应用程序"中点击我的应用程序,这将调用我的情况"启动活动"中的启动器活动,这将从服务器获取数据(最新)并再次存储它在我的单身内部 - 完美!,这正是我的其他应用程序中发生的事情,区别在于我没有使用滑动菜单和片段,只有活动.在我的情况下,从后台返回不会调用启动器Activity,它是"启动画面",但会调用MainActivity(主滑动菜单活动)以及初始片段,当我尝试从我的单例访问数据时所有数据在它内部是null,单例本身不是null,因为在片段的onCreate()我使用getInstance().我相信这意味着单例丢失了,现在重新创建,里面没有数据,所以如果进程是为什么我没有回到发射器活动?

希望有人可以提前帮助,谢谢.

我的单身课程:

 public class MySingleton {
  // some private data members with getters/setters
  private String x,y,z;

      // the instance
  private static MySingleton theInstance = null;

      //private ctor 
      private MySingleton(){
          //doing something 
      }

      //get instance
      public static synchronized MySingleton getInstance() {

     if (theInstance == null)
        theInstance = new MySingleton ();
     return theInstance;
   }
 }
Run Code Online (Sandbox Code Playgroud)

singleton static android android-fragments android-activity

9
推荐指数
1
解决办法
2305
查看次数